ソースを参照

docs(harness): 全量接口清点(在用 / 死代码),供用户决定删除范围

用户要求:「查看当前项目的接口情况,列出来我来判断哪些不需要可以删除」。

做法:全仓库 grep 网络调用点(fetch/WebSocket/EventSource)+ 逐个 VITE_* 环境变量数引用 + 反查调用方。
结果写进 harness/docs/reference/current-api-call-sites.md 新增的 §0 全量表(A 在用 / B 可删 /
C 已删干净 / D 别误删的 env),并按状态标注旧章节(语音那段指向 asr-nls.md)。

清单要点(14 项在用、7 类死代码):
- 在用:/api/chat、/api/company/classify、DMS content/*、DMS file/uploadFile、NLS token 网关、
  NLS 实时识别 wss、本机 IP、老接口 enterprise/login + enterprise_info、index.html 的
  openid_to_token、政策库 json(download + 本地兜底)、{VITE_MODEL_SERVER}/v1/policies、
  postMessage(parentOrigin)、redirect.html 的跳转映射
- 可删候选:厂商 OSS 上传(块注释 + 四份 env 的 VITE_UPLOAD_SIGN_URL)、旧厂商 ASR
  (VITE_ASR/VITE_XF_ASR + /asr 代理,**删了就不能一键切回**)、stream-message-coordinator 整个类
  (无活引用,但 MessageState 枚举被 BusinessRecord/types/record 引用,删前要先搬)、
  updateSessionInfo、getModelServerUrl/isKnowledgeApi、三个空目录(three-libs/metamaker 等)、
  syncSessionTitleToServer

⚠️ 更正一条我自己写错的旧说法:VITE_APP_KEY **不是死配置** —— index.html 的 openid_to_token
在用(之前只 grep 了 src/ 没看 index.html),已在 asr-realtime.md §8 与清单里更正。

无代码改动;validate-harness 通过。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao 1 ヶ月 前
親
コミット
dbe4ae8282

+ 1 - 1
harness/docs/reference/asr-realtime.md

@@ -183,7 +183,7 @@ SDK 注释说这是"手机长按说话"的形态。当前两端都没走这条
 |---|---|---|---|---|---|
 | `VITE_ASR` | `https://qingpu-data-api.metamaker.cn` | `wss://qingpu-data-api.metamaker.cn` | `wss://…` | `https://…` | **当前分支的 socket host**(只取 host,协议按页面推) |
 | `VITE_XF_ASR` | `/asr` | (无) | `/asr` | (无) | 讯飞分支:既做 gen_auth 前缀,也做 socket host(走 vite 代理) |
-| `VITE_APP_KEY` | 有值 | 有值 | 有值 | 有值 | ⚠️ **`src/` 里没有任何引用** —— 死配置;appKey 是硬编码的 |
+| `VITE_APP_KEY` | 有值 | 有值 | 有值 | 有值 | 语音这边用不到;**但不是死配置** —— `index.html` 的 `openid_to_token` 在用(2026-09-24 更正:只 grep `src/` 会误判) |
 
 > `VITE_ASR` 写成 `https://…` 或 `wss://…` 都能用(SDK 只取 `.host`);写成 `/asr` 这种相对路径则
 > host 取当前页面域名 —— 这条早先的写法在 `.env.qingpu` 里以注释形式留着一行(`# VITE_ASR="/asr"`)。

+ 64 - 7
harness/docs/reference/current-api-call-sites.md

@@ -1,13 +1,67 @@
-# 还在用老接口的功能(按功能清点)
+# 接口清点(在用 / 死代码)
 
-> **核对时间**:2026-09-17(Session 036/037)
-> **核对方法**:全仓库 grep 网络调用点 → **逐个反查调用方** → 再看它支撑了哪些
-> 用户能感知的行为。复核命令见文末,可重跑。
-
-老接口 = `{VITE_API}`(`//qingpu-data-api.metamaker.cn`)。
+> **核对时间**:2026-09-24(用户要求「查看当前项目的接口情况,列出来我来判断哪些可以删」)
+> **核对方法**:全仓库 grep 网络调用点(`fetch` / `WebSocket` / `EventSource`)+
+> 逐个数 `VITE_*` 环境变量的引用数 → **逐个反查调用方**。复核命令见文末。
+>
+> 下面 §0 是**一张全量表**(含"建议"列);§一/§二 是旧版按功能写的细节,仍有效,保留。
+
+## 0. 全量接口清单(2026-09-24)
+
+### A. 在用(核心链路,别删)
+
+| # | 接口 | 用途 | 调用点 |
+|---|---|---|---|
+| 1 | `POST {VITE_CHAT_API}/api/chat`(SSE) | 对话主链路 | `src/components/api-chat-coordinator.ts` |
+| 2 | `POST {同一后端}/api/company/classify` | 企业多标签分类 | `src/network/api/company-classification.ts` |
+| 3 | `{VITE_DMS_API}/content/*` | DMS 读写(1886/1887/1888/1889 会话·问答·反馈·企业信息) | `src/network/api/dms/client.ts` |
+| 4 | `POST {VITE_DMS_API}/file/uploadFile` | 附件上传到 DMS 文件服务 | `src/network/api/dms/file-upload.ts` |
+| 5 | `GET {VITE_NLS_TOKEN_API}`(→ `http://121.43.55.7:10011/proxy/verify/getALYToken`) | 语音识别的 token(后端网关签发) | `src/network/api/nls-token.ts` |
+| 6 | `wss://nls-gateway-cn-shanghai.aliyuncs.com/ws/v1` | 实时语音识别(阿里云 NLS) | `src/three-libs/asr/nls.ts` |
+| 7 | `GET {VITE_IP_API}/proxy/verify/getIPByBrowser`(→ 同上 10011) | 取本机 IP(DMS 访客归属) | `src/utils/client-ip.ts` |
+| 8 | `POST {VITE_API}/enterprise/login`、`GET {VITE_API}/fta_ent_policy/enterprise_info` | 企业登录换码 / 拉企业信息(**老接口**) | `src/network/api/enterprise.ts` |
+| 9 | `POST {modelServer}/open/openid_to_token`(带 `app_key=VITE_APP_KEY`)+ 助手卡片信息 | 免登引导、卡片配置 | `index.html`(脚本段) |
+| 10 | `GET {VITE_DOWNLOAD_URL}merchant-agent/policies_public.v1.json` | 惠企政策库(本地 `/merchant-agent/…` 兜底;`VITE_POLICY_LOCAL_FIRST` 决定远端/本地优先级) | `index.html` + `Chat/PolicyMatch.vue` |
+| 11 | `GET {VITE_MODEL_SERVER}/v1/policies?…` | 政策「更多」面板列表(远端优先,取不到退本地库) | `Chat/PolicyMatch.vue` |
+| 12 | `postMessage(…, VITE_PARENT_ORIGIN)` | 与父页面通信(嵌 iframe 场景) | `index.html` |
+| 13 | `VITE_REDIRECT_MAP` | 跳转映射页 | `redirect.html` |
+
+> 📌 **更正一条旧说法**:`VITE_APP_KEY` **不是死配置** —— `index.html` 的 `openid_to_token` 在用。
+> (`asr-realtime.md` §8 曾写它是死配置,因为只 grep 了 `src/`,没看 `index.html`。)
+
+### B. 已停用 / 死代码(**可删**,等你拍板)
+
+| # | 东西 | 现状 | 删了会怎样 |
+|---|---|---|---|
+| 14 | 厂商 OSS 上传:`POST {VITE_UPLOAD_SIGN_URL}` + 直传 host | 已被 DMS 文件服务取代;实现整段**块注释**保留,`VITE_UPLOAD_SIGN_URL` 仍在四份 env 里 | 只会失去"翻旧实现"的便利;`uploadDmsAttachment` 不受影响 |
+| 15 | 旧厂商 ASR:`wss://{VITE_ASR host}/common/asr_hub`、讯飞分支 `VITE_XF_ASR` + vite `/asr/` 代理 | 已被 NLS 取代;`src/three-libs/asr/index.ts` 保留 | **删了就不能"一键切回"**(那正是当初保留它的理由) |
+| 16 | `stream-message-coordinator.ts` 整个类(含 `TTSURL=//llm-api.test.metamaker.cn/knowledge/tts`、老 SSE 地址、`{VITE_MODEL_SERVER}/v1/chat/completions`、`CensorURL`) | **没有任何活引用**;只有 `MessageState` 枚举被 `BusinessRecord.vue` / `types/record.ts` 引用 | 需要先把 `MessageState` 挪到别处(枚举本身**不能删**) |
+| 17 | `updateSessionInfo()`(1887 标题同步的包装) | 已停用,只有注释引用 | 无 |
+| 18 | `getModelServerUrl()` / `isKnowledgeApi()`(`utils/runtime-config.ts`) | 无活调用点(后者只被 #16 用) | 无 |
+| 19 | 空目录:`src/three-libs/metamaker`(0 文件)、`global`、`cache`、`assets` | 空壳 | 无 |
+| 20 | `syncSessionTitleToServer()` | 已停用(注释保留) | 无 |
+
+### C. 已经删干净的(只作提示,不用动)
+
+- 使用统计埋点(`assistant-statistics.ts` + `VITE_ASSISTANT_STATISTICS_BASE_URL`,2026-09-18 删)
+- 数字人视频流:`/stream/` 代理 + `VITE_STREAM_SERVER` / `VITE_STREAM_TOKEN` / `VITE_HUMAN_IDLE_MP4_URL`
+  (只剩 `vite.config.ts` 里一条说明注释)
+- dev 期自签 NLS token 的 `/nls-token/` 中间件(2026-09-24 被网关端点取代)
+
+### D. 仍在用、别误删的环境变量
+
+`VITE_API`(#8 + index.html 的 modelServer)· `VITE_CHAT_API` · `VITE_DMS_API` · `VITE_IP_API` ·
+`VITE_NLS_TOKEN_API` · `VITE_NLS_APPKEY` · `VITE_DOWNLOAD_URL` · `VITE_POLICY_LOCAL_FIRST` ·
+`VITE_MODEL_SERVER` · `VITE_PARENT_ORIGIN` · `VITE_REDIRECT_MAP` · `VITE_APP_KEY` · `VITE_VERSION` ·
+`VITE_ASR` / `VITE_XF_ASR`(只服务 #15 的退路)· 四个 `*_TARGET`(vite 代理用)· `VITE_USE_KNOWLEDGE_API`
+(经 `globalThis.isKnowledgeApi`,目前只有死代码在用 —— 见 #18)
 
 ## 一、已经迁到新接口的(不用管)
 
+> ⚠️ 下面这段是 2026-09-17 的版本 + 后续更正,细节仍有效;**未完成/待删的项以 §0 为准**。
+
+老接口 = `{VITE_API}`(`//qingpu-data-api.metamaker.cn`)。
+
 | 功能 | 接口 | 备注 |
 |---|---|---|
 | 对话(SSE) | `POST {VITE_CHAT_API}/api/chat` | |
@@ -64,7 +118,10 @@
   改了会让已存在的访客全部换新 id,同一浏览器在 DMS 里就变成两个访客了。
 - 现在**点赞只写 DMS**(原先双写)
 
-### 3. 语音输入 —— **在用**
+### 3. 语音输入 —— ~~在用~~ **2026-09-23 起换成阿里云 NLS,见 [`asr-nls.md`](asr-nls.md)**
+
+> 下面这段是**换之前**的实现记录(厂商 `asr_hub` 中转)。旧实现代码仍在
+> `src/three-libs/asr/index.ts`(切回去的退路),所以细节保留;但它已不在链路上。
 
 - 触发:点输入框的麦克风
 **实际只依赖 1 个接口:**