Pārlūkot izejas kodu

docs(harness): 修正 ASR 接口描述——实际走 /common/asr_hub(阿里云引擎)

用户问「语音识别依赖什么接口」。逐行读 asr/index.ts 后查清:**只依赖 1 个 WebSocket**:

  wss://qingpu-data-api.metamaker.cn/common/asr_hub
      ?project=qingpu&engine=aliyun_dashscope&is_long_connection=true&heartbeat=true

- host 取自 VITE_ASR;**引擎是 aliyun_dashscope(阿里云百炼),不是讯飞**
- 鉴权不调接口:token 硬编码在源码里(JWT iss: human-large-screen,exp 2034-12-29)
  → ASR 没有 DMS 那种每天换 token 的问题
- 讯飞分支(gen_auth + wss://{VITE_XF_ASR}/api/human_asr/v2/asr)走不到:
  index.html 硬编码 globalThis.isXF = false

⚠️ 同时修正了我自己写错的文档:current-api-call-sites.md 原先把
「{VITE_ASR}/api/human_asr/v2/asr/gen_auth 取鉴权」写成 ASR 的接口——
那是**讯飞分支、且未启用**的那条地址。已改成实际在跑的 /common/asr_hub。

验证:逐行核对 asr/index.ts 的 fetchToken/openSocket 分支与 isXF 赋值;validate-harness 通过。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao 2 dienas atpakaļ
vecāks
revīzija
7606b74f98
2 mainītis faili ar 53 papildinājumiem un 2 dzēšanām
  1. 22 2
      harness/docs/reference/current-api-call-sites.md
  2. 31 0
      harness/progress.md

+ 22 - 2
harness/docs/reference/current-api-call-sites.md

@@ -59,8 +59,28 @@
 ### 3. 语音输入 —— **在用**
 
 - 触发:点输入框的麦克风
-- 接口:`{VITE_ASR}/api/human_asr/v2/asr/gen_auth` 取鉴权,再开 WebSocket 走识别流
-- 与对话协议无关,本轮迁移没碰它
+**实际只依赖 1 个接口:**
+
+```
+wss://qingpu-data-api.metamaker.cn/common/asr_hub
+    ?project=qingpu&engine=aliyun_dashscope&is_long_connection=true&heartbeat=true
+    (移动端多一个 &max_sentence_silence=5000)
+```
+
+- host 取自 `VITE_ASR`;**引擎是 `aliyun_dashscope`(阿里云百炼),不是讯飞**
+- **鉴权不需要调接口**:token 硬编码在 [asr/index.ts](../../../src/three-libs/asr/index.ts) 里
+  (JWT `iss: human-large-screen`,**exp 2034-12-29**)—— 所以 ASR 没有 DMS 那种每天换 token 的问题
+- 调用方还硬编码传了一个 `appKey`(`new ASR("<key>", {audio:true,video:false})`),
+  但它在当前分支用不到(只在讯飞分支的 `gen_auth` 里用)
+
+**未启用的讯飞分支**(`index.html` 硬编码 `globalThis.isXF = false`,走不到):
+
+```
+POST {VITE_XF_ASR}/api/human_asr/v2/asr/gen_auth     取鉴权
+wss://{VITE_XF_ASR}/api/human_asr/v2/asr?Authorization=...
+```
+
+与对话协议无关,历次迁移没碰它。
 
 ### 4. 图片 / 附件上传 —— **用户触发不到(入口被注释)**
 

+ 31 - 0
harness/progress.md

@@ -1912,3 +1912,34 @@
   - ⚠️ 删掉的代码在 git 历史里可查(`git log --diff-filter=D --name-only`)
 - **下一步最佳动作**:把当前在用的接口清单给用户(本轮第三项要求)
 
+## Session 046
+
+- **日期**:2026-09-18
+- **本轮目标**:用户问「现在的语音识别功能依赖什么接口」
+- **查证结果**:**只依赖 1 个 WebSocket 接口**
+
+  ```
+  wss://qingpu-data-api.metamaker.cn/common/asr_hub
+      ?project=qingpu&engine=aliyun_dashscope&is_long_connection=true&heartbeat=true
+  ```
+
+  - host 取自 `VITE_ASR`;**引擎是 `aliyun_dashscope`(阿里云百炼),不是讯飞**
+  - **鉴权不调接口**:token 硬编码在 `src/three-libs/asr/index.ts`(JWT `iss: human-large-screen`,
+    **exp 2034-12-29**)→ ASR 没有 DMS 那种每天换 token 的问题
+  - 调用方硬编码传了个 `appKey`,但当前分支用不到(只在讯飞分支的 `gen_auth` 用)
+  - 讯飞分支(`gen_auth` + `wss://{VITE_XF_ASR}/api/human_asr/v2/asr`)**走不到**:
+    `index.html` 硬编码 `globalThis.isXF = false`
+- **⚠️ 修正了我自己写错的文档**:`current-api-call-sites.md` 第 3 条原先写
+  「接口:`{VITE_ASR}/api/human_asr/v2/asr/gen_auth` 取鉴权,再开 WebSocket」——
+  **那是讯飞分支的地址、而且是未启用的那条**;已改成实际在跑的 `/common/asr_hub`
+  (含引擎、鉴权、未启用分支三部分)
+- **运行过的验证**:逐行读 `asr/index.ts` 的 `fetchToken` / `openSocket` 分支与
+  `isXF` 赋值处;`validate-harness` 通过
+- **已记录证据**:本文件 Session 046;`docs/reference/current-api-call-sites.md` 第 3 条
+- **更新过的文件或工件**:`harness/docs/reference/current-api-call-sites.md`、本文件
+- **已知风险或未解决问题**:
+  - ⚠️ 那条硬编码的 ASR token(exp 2034)**是写在源码里、且入库的凭据**——既有状况,
+    不是本轮引入;若要收敛,得 ASR 服务那边给个正规的取 token 方式
+  - ⚠️ `VITE_XF_ASR` / 讯飞分支整条是死代码(`isXF` 恒 false),但**没删**(不在本轮范围)
+- **下一步最佳动作**:无(本轮为查证 + 改文档)
+