Files
fastapi/docs/04_data_collection.md
T
2026-06-01 09:25:26 +08:00

4.9 KiB
Raw Blame History

数据采集与存储边界

1. 采集原则

  • 进入 Agent 时只接收宿主系统传入的用户上下文,不做登录注册。
  • 问诊聊天只作为本次训练的短期 memory 使用,训练中断或退出不写入长期聊天历史。
  • 检查申请、诊断提交、治疗提交属于本次训练过程数据,参与最终评分。
  • 只有生成 AI 评价报告后,系统才写入长期训练记录 training_record
  • 所有会话、检查、提交、评价和历史查询都按 X-User-Id 隔离。

2. 进入 Agent

数据 来源 存储位置 用途
user_id Header X-User-Id training_session.external_user_idtraining_record.external_user_idaudit_logs.user_id 用户隔离
tenant_id Header X-Tenant-Id training_session.tenant_idaudit_logs.tenant_id 宿主系统组织上下文
class_id Header X-Class-Id training_session.class_id 班级/教学上下文
entry_scene Header X-Entry-Scene training_session.entry_sceneaudit_logs.entry_scene 入口来源
role Header X-Role audit_logs.role 审计上下文
request_id 系统生成或 Header audit_logs.request_id 链路追踪

3. 创建会话

数据 存储位置 说明
case_id training_session.case_id 关联 case_base.id
training_type training_session.case_type 当前来自病例类型
mode training_session.training_mode practiceteaching
score_type training_session.score_type percentagefive_point
session_code training_session.session_code 会话业务编号
memory_key training_session.memory_key Redis/进程内 memory key
patient_opening runtime memory AI 病人首句,不作为长期历史保存

4. 问诊过程

数据 存储位置 生命周期
医学生提问 runtime memory 本次会话有效,TTL 到期或评价完成后释放
AI 病人回复 runtime memory 本次会话有效,TTL 到期或评价完成后释放
SSE 响应耗时 前端状态、评价结构摘要 用于演示和问题排查
LLM 模型名/fallback 状态 前端状态、评价结构摘要 用于确认真实模型或 fallback

短期 memory 默认使用 RedisRedis 不可用时降级为进程内 memory。TTL 由 RUNTIME_MEMORY_TTL_SECONDS 控制;每次写入会刷新 TTL。

5. 检查/检验申请

数据 存储位置 说明
item_code training_order.item_code 同一会话去重依据
item_name training_order.item_name 检查名称
item_type training_order.item_type labimagingvital_sign
result_text training_order.result_text case_exam_item 读取的固定结果
result_structured training_order.result_structured 结构化结果
is_keyis_abnormal training_order 评分参考

检查结果只来自数据库 case_exam_item。LLM 不生成、不改写检查结果。

6. 诊断与治疗提交

数据 存储位置 说明
primary_diagnosis training_submission.primary_diagnosis 主要诊断
differential_diagnoses training_submission.differential_diagnoses 鉴别诊断
diagnosis_basis training_submission.diagnosis_basis 诊断依据
treatment_principle training_submission.treatment_principle 治疗原则
treatment_measures training_submission.treatment_measures 治疗措施
risk_plan training_submission.risk_plan 风险预案
communication training_submission.communication 医患沟通
follow_up training_submission.follow_up 随访安排

7. 评价报告

评价生成读取以下数据:

  • training_session:模式、分数类型、病例 ID、memory key。
  • runtime memory:本次问诊对话摘要。
  • training_order:已申请检查和结果。
  • training_submission:诊断和治疗提交。
  • case_base + traditional_case/teaching_case:病例基础资料和标准参考。
  • scoring_rule:基础评分规则。
  • knowledge_chunks:科室/类型下命中的评分指南片段。

评价完成后写入:

数据 存储位置
总分、评分类型、等级 training_record.total_scorescore_typeevaluation_level
结构化评分 training_record.ai_feedback_structured
证据摘要 training_record.thinking_chain
诊断路径摘要 training_record.diagnosis_path
扣分点 training_record.wrong_points
改进计划 training_record.recommendation_result
PDF 路径 training_record.pdf_file_path

8. 审计日志

audit_logs 记录关键动作:进入 Agent、创建会话、问诊、申请检查、完成问诊、提交诊断、提交治疗、生成评价、导出 PDF。审计日志只记录元数据和对象 ID,不保存完整聊天全文。