current-api-call-sites.md 6.3 KB

还在用老接口的功能(按功能清点)

核对时间:2026-09-17(Session 036/037) 核对方法:全仓库 grep 网络调用点 → 逐个反查调用方 → 再看它支撑了哪些 用户能感知的行为。复核命令见文末,可重跑。

老接口 = {VITE_API}//qingpu-data-api.metamaker.cn)。

一、已经迁到新接口的(不用管)

功能 接口 备注
对话(SSE) POST {VITE_CHAT_API}/api/chat
问答记录(历史)写入 + 读取 DMS 栏目 1889 一问一答一条;title = 问题文本
点赞/点踩/取消 DMS 1889 的 c_feedback_*
删除会话 DMS(清 1889 记录 + 1887 旧行)
政策卡片与协议内容 /api/chat 下发
惠企政策库数据 静态 json policies_public.v1.json

⚠️ 2026-09-18 起:1887 助手会话不再写入(用户指示「只传具体的会话记录,另一个接口不传了」)。 新建会话、改名都不再同步;前端会话列表退化为纯本地mergeRemoteSessions 拿到空数组无害,行为与接 DMS 之前一致)。 停用的调用点按约定注释保留在 useBusinessAssistantChat.ts,并有源码级断言防改回。

二、还在用老接口的功能

1. 企业身份识别(登录 + 拉企业信息)—— 在用,且牵连最广

用户看到什么:右上角账号区。未登录显示「青浦区区内企业登录」(可点,跳一网通办), 登录后显示企业名 + 首字母头像 + 退出登录,还会飘一个气泡「识别到您为我们区内企业,推荐登录」。

怎么走到老接口: | 入口 | 接口 | |---|---| | 从一网通办带 ?access_token= 跳回来 | POST /enterprise/logincredit_code + authToken | | 带 ?credit_code= 跳回来 | GET /fta_ent_policy/enterprise_info 直接拉企业信息 |

这个身份一共被 5 处依赖(所以它不只是"显示个名字"):

  1. 账号区显示企业名与头像
  2. 判断"是否登录"(isEnterpriseLoggedIn
  3. 历史数据分家:登录 → ba_chat_history;访客 → ba_temp_chat_history
  4. 会话列表:登录后按 credit_code 拉远端会话(现走 DMS)
  5. DMS 记录归属c_credit_code = 企业信用代码,未登录则 访客_<访客id>

⚠️ 前端只用企业信息的 namecredit_code 两个字段(其余 19 个字段零引用)—— 所以真要用 DMS 的企业信息(栏目 1888)替换它,成本很低。

2. 使用统计(页面浏览 / 回答反馈) —— 已删除(2026-09-18)

用户要求删掉统计埋点的老接口。已删除:

  • 调用点:BusinessAssistant.vue(页面浏览)、BusinessRecord.vue(反馈统计)
  • 整个模块 src/network/api/assistant-statistics.ts(连同 VITE_ASSISTANT_STATISTICS_BASE_URL 这个已无人用的 env)
  • ⚠️ 只留下了访客 id 的读写getOrCreateAssistantVisitorId),因为 DMS 记录访客归属 (访客_<id>)在用它 —— 已搬进 src/network/api/dms/chat-sessions-dms.tslocalStorage 的 key 字符串保持原样assistant_statistics_visitor_id): 改了会让已存在的访客全部换新 id,同一浏览器在 DMS 里就变成两个访客了。
  • 现在点赞只写 DMS(原先双写)

3. 语音输入 —— 在用

  • 触发:点输入框的麦克风
  • 接口:{VITE_ASR}/api/human_asr/v2/asr/gen_auth 取鉴权,再开 WebSocket 走识别流
  • 与对话协议无关,本轮迁移没碰它

4. 图片 / 附件上传 —— 用户触发不到(入口被注释)

  • 原设计:输入框的上传按钮(图片、pdf/doc/xlsx 等)→ POST /common/qp_signed_url 取 OSS 签名 → 直传 OSS
  • 现状:新协议 /api/chat 只收 {thread_id, question},附件传不上去, 上传入口整块被注释BusinessAssistantMobileInputShell.vue 里有说明)
  • 但代码与 OSS 地址仍活着(地址还是硬编码useBusinessAssistantUpload.ts 里的), 等后端定了附件契约才能接上

5. 政策事项列表的「远端查询」—— 几乎不可达

  • 原设计:列表数据本地都没有时,去模型服务查 {VITE_MODEL_SERVER}/v1/policies
  • 现状:fetchPolicyList 里前面两档(惠企政策库 262 条 / 本轮卡片兜底)几乎总能命中, 第三档基本走不到

6. openid 换 token —— 只在 test 构建

  • 触发:页面初始化的内联脚本
  • 现状:只在 VITE_USE_KNOWLEDGE_API === false 时执行,四份 env 里只有 .env.test 是 false

三、已经没有人调用的(死代码,只标注未删)

位置 原本支撑的功能 处置
src/network/api/card/index.jsgetMediaList / giveFeedback / appendHistory 卡片媒体信息、点赞点踩的旧接口版落库、追加服务端历史 2026-09-18 整文件删除(连同 useBusinessAssistantChat.ts 里那个未使用的 import cardAPI
src/network/api/assistant-statistics.ts 使用统计埋点 2026-09-18 整文件删除(访客 id 那部分已搬进 DMS 模块,见第二节)
PolicyListUpdatedMatch.vue 旧协议 <policy-list-updated> 卡片列表 ⚠️ 保留:仍被 BusinessRecord 挂载,老会话的历史内容里可能还有这种块,删了那些卡片列表就渲染不出来

删除的代码都在 git 历史里(git log --diff-filter=D --name-only 可查)。 上面「保留」那条不是遗漏 —— 它虽对新协议无效,但对旧历史仍然有效

四、复核方法(可重跑)

# 1. 列出所有网络调用点
grep -rn "fetch(\|new WebSocket\|new EventSource\|axios" src/ index.html \
  --include=*.ts --include=*.vue --include=*.js --include=*.html

# 2. 对每个点反查调用方(以 card/index.js 为例)
grep -rn "getMediaList\|giveFeedback\|appendHistory\|network/api/card" src/ \
  --include=*.ts --include=*.vue --include=*.js | grep -v "^src/network/api/card/index.js"

判据:出现在第 1 步 ≠ 还在用。必须做第 2 步——没有调用方的就是死代码。 第二节每条的「触发条件」也是这么查的(例如第 5 条要看 fetchPolicyList 前面两档 return 才能判断它几乎走不到)。