本次更新概览
本轮开发重点优化了 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。