返回开发日志

2026-07-24

聊天检索流程与推荐按钮体验优化

优化 EQAI 聊天助手的量表检索、澄清与推荐确认流程,并新增可直接查看推荐量表的操作按钮。

---

date: 2026-07-24

author: Tony

---

本次更新概览

本轮开发重点优化了 EQAI 聊天入口从用户表达、需求澄清到量表推荐的完整链路。目标是在保持推荐准确性和用户确认机制的同时,减少不必要的模型等待,让对话更自然,也让用户更容易进入具体量表页面。

检索与回复职责分离

量表候选检索与用户可见回复继续采用独立流程:

  • DeepSeek 根据当前输入和最近对话读取完整的可推荐分量表目录。
  • 模型只返回候选量表 ID 和相关度,不直接控制最终卡片。
  • 服务端重新验证 ID,并过滤总量表和无效结果。
  • 普通聊天回复、澄清问题和量表卡片分别由各自逻辑处理。

这种拆分避免了自然语言回复与推荐状态被塞进同一个复杂 JSON 后相互影响,也让卡片生成保持可验证、可追踪。

至少一次澄清或拓展

新的推荐周期加入了明确的澄清计数:

  • 即使首次检索已经找到相关量表,也至少先进行一次针对性的澄清或拓展。
  • 澄清问题会参考候选量表方向,但不会提前透露具体量表名称。
  • 用户补充信息后,如果仍有有效候选,才进入“是否查看推荐”的确认阶段。
  • 正式推荐卡片展示后,澄清计数自动归零,下一轮咨询重新开始。

这项调整让推荐不再只依赖用户最初的一句话,同时避免连续多轮无目的追问。

本地推荐确认话术

当候选已经明确时,“是否查看推荐”不再额外请求一次 DeepSeek,而是从本地话术库中选择回复。

当前中英文分别准备了 10 套较完整的确认表达,并具备以下规则:

  • 在同一段对话中优先选择尚未出现过的话术。
  • 语气更温和,先承接用户刚才的表达,再自然邀请查看量表。
  • 每套话术末尾都允许用户继续补充细节。
  • 不提前展示量表名称或卡片。

这一改动减少了一次串行模型请求,同时保留了两步式推荐确认。

新增“查看推荐量表”按钮

当助手已经进入等待推荐确认状态时,回复底部会出现操作按钮:

  • 中文:查看推荐量表
  • 英文:View recommended assessments

用户点击按钮后,会复用原有 positive confirmation 流程,立即显示此前已经检索和验证的量表卡片。按钮不会建立另一套推荐算法,也不会绕过服务端校验。

如果用户不点击按钮,仍然可以输入“可以”“好的”“推荐吧”“yes”或“show me”等确认表达,行为与之前一致。

推荐完成、用户拒绝或对话状态发生变化后,按钮会自动消失。

推荐卡片与后续平台衔接

推荐卡片继续直接跳转到对应分量表详情页。对于已登录用户,点击卡片时还会生成固定 Schema 的 ConversationSummary

  • 摘要保存所选量表、候选 code、消息数量和最近用户输入。
  • 不保存邮箱、密码或其他认证信息。
  • 当前写入本地 profile 和 EQAI Platform 本地 outbox。
  • 平台发送目前只是适配器框架,尚未进行真实网络传输。

这为后续把网站作为 EQAI Platform 的评估入口提供了稳定的数据边界。

验证

本次更新完成后执行了:

  • TypeScript 类型检查
  • 63 项自动测试
  • Next.js 生产构建
  • 870 个静态页面生成

当前量表测试页面、账号体系和 EQAI Platform 数据传递仍包含原型框架部分,后续需要接入正式题目数据、服务端认证和平台 API。