Files
SuperBizAgent-java/devflow/projects/2026-06-29-confidence-feedback/acceptance.md
T

3.1 KiB
Raw Blame History

acceptance.md — confidence-feedback

实现清单

任务 文件 状态
T0:Flyway V008 + answer 字段 V008__add_answer_to_diagnosis_session.sql、DiagnosisSession.java 完成
T1:EvaluationService(规则引擎) EvaluationService.java 完成
T2:ChatService 后置调用 ChatService.java 完成
T3:FeedbackController + FeedbackService FeedbackController.java、FeedbackService.java、FeedbackRequest.java、FeedbackResponse.java 完成
T4:CaseLibraryService CaseLibraryService.java 完成
T5:AsyncConfig AsyncConfig.java 完成

验证记录

静态验证(已通过)

  • mvn compile BUILD SUCCESS(2026-06-30)
  • 无新增 ERROR,存量 WARNING 与本次改动无关
  • import 完整性人工检查通过

脚本验证(已通过,2026-06-30)

验证工具:scripts/query_mysql.py(本次新建)

步骤 操作 结果
1 POST /api/chat 发送问题 200,answer 有值
2 等 5 秒查 diagnosis_session self_evaluation 写入规则引擎结果,answer 写入完整回答
3 POST /api/feedback useful 200,返回 caseId;case_library 新增一行,feedback=useful,status=SUCCESS
4 POST /api/feedback not_useful 200,feedback=not_useful,status 仍为 SUCCESS(未被改写)
5(边界) 重复提交 useful 返回同一 caseId,case_library 无重复插入
6(边界) 非法 feedback 值 HTTP 400

Flyway V008 迁移

  • 服务启动后 diagnosis_session 表存在 answer 列,验证通过(步骤 2 能写入 answer)

浏览器/人工验证(已通过,2026-06-30)

步骤 操作 结果
1 发送"今天天气怎么样" AI 回复下方出现"有用/无用"按钮
2 点击"有用" 按钮区域替换为"已标记为有用"
3 网络请求确认 POST /api/feedback 返回 HTTP 200,success: true

前端反馈按钮(追加,2026-06-30)

改动文件:app.js、styles.css

关键设计:

  • ChatResult record 新增(ChatService),ChatResponse 增加 sessionId 字段(ChatController)
  • sendQuickMessage 读取 chatResponse.sessionId 存为 this.lastSessionId
  • createFeedbackBar(sessionId) 闭包绑定 sessionId,避免多轮对话时 sessionId 错位
  • submitFeedback(feedback, barElement, sessionId) 直接用传入参数,不依赖全局状态
  • 流式模式(/api/chat_stream)反馈按钮会渲染,但 sessionId 为空,点击不生效(已知限制)

已知限制

  • 非检索工具(DateTimeTools 等)不写 tool_invocation,evidence_score = 0(已接受,符合"证据充分度"定义)
  • @Async 失败时 selfEvaluation 为 null,前端需处理 null(已接受)
  • CaseLibrary 的 faultCategory 固定为 GENERAL,需人工补充(已接受,Phase 2 优化)
  • LLM 观点层未实现,selfEvaluation JSON 预留 llm_opinion 扩展位(Phase 2)
  • 流式模式反馈按钮 sessionId 缺失,暂不处理(已知,后续处理流式接口时一并解决)