77 lines
6.2 KiB
Markdown
77 lines
6.2 KiB
Markdown
# Demo 功能追踪表
|
|
|
|
本文档用于说明当前 Demo 功能、前端入口、后端接口、核心函数和数据表之间的对应关系。
|
|
|
|
## 1. 功能到代码映射
|
|
|
|
| 功能 | 前端页面/按钮 | API | Router 函数 | Service / Agent | 数据表 | 状态 |
|
|
|---|---|---|---|---|---|---|
|
|
| Agent 连接检查 | 入口页“连接/进入” | `GET /api/v1/agent/hello` | `agent.hello` | `AuditService.log` | `audit_logs` | 已实现 |
|
|
| 病例列表 | 病例页“刷新” | `GET /api/v1/cases` | `cases.list_cases` | `CaseService.list_cases` | `case_base` | 已实现 |
|
|
| 病例详情 | 点击病例卡片 | `GET /api/v1/cases/{case_id}` | `cases.get_case_detail` | `CaseService.get_case_detail` | `case_base`、`traditional_case`、`teaching_case`、`case_exam_item` | 已实现 |
|
|
| 删除病例预览 | 病例详情“删除病例” | `GET /api/v1/cases/{case_id}/delete-preview` | `cases.get_case_delete_preview` | `CaseService.get_delete_preview` | 病例表、训练表统计 | 已实现 |
|
|
| 删除病例 | 删除弹窗“确认删除” | `DELETE /api/v1/cases/{case_id}` | `cases.delete_case` | `CaseService.delete_case`、`CaseRepository.delete_case_cascade` | `case_base`、`traditional_case`、`teaching_case`、`scoring_rule`、`case_exam_item`、`training_session`、`training_order`、`training_submission`、`training_record` | 已实现 |
|
|
| 病例 SQL 预检 | 导入页“解析检查” | `POST /api/v1/imports/case-sql/preview` | `imports.preview_case_sql` | `CaseSqlImportService.preview` | 不写库 | 已实现 |
|
|
| 病例 SQL 导入 | 导入页“确认导入” | `POST /api/v1/imports/case-sql/apply` | `imports.apply_case_sql` | `CaseSqlImportService.apply`、`scripts.import_source_case_sql` | `case_base`、`traditional_case`、`teaching_case`、`scoring_rule`、`case_exam_item` | 已实现 |
|
|
| 创建训练会话 | 训练配置页“创建训练会话” | `POST /api/v1/sessions` | `sessions.create_session` | `SessionService.create_session` | `training_session`、runtime memory | 已实现 |
|
|
| 普通问诊 | Chat 页“发送问诊” | `POST /api/v1/sessions/{session_id}/chat` | `sessions.chat` | `SessionService.chat`、`PatientAgent.reply` | runtime memory | 已实现 |
|
|
| 流式问诊 | Chat 页流式开关开启 | `POST /api/v1/sessions/{session_id}/chat/stream` | `sessions.chat_stream` | `SessionService.stream_chat`、`PatientAgent.stream_reply` | runtime memory | 已实现 |
|
|
| 查看提示 | Chat 页“查看提示” | `POST /api/v1/sessions/{session_id}/hints` | `sessions.generate_hints` | `SessionService.generate_hints`、`HintAgent.generate` | runtime memory、`training_order` | 已实现 |
|
|
| 检查项目列表 | 检查面板刷新 | `GET /api/v1/sessions/{session_id}/order-items` | `sessions.list_order_items` | `OrderService.list_order_items` | `case_exam_item` | 已实现 |
|
|
| 申请检查 | 检查面板“申请该检查” | `POST /api/v1/sessions/{session_id}/orders` | `sessions.create_order` | `OrderService.create_order` | `case_exam_item`、`training_order` | 已实现 |
|
|
| 完成问诊 | Chat 页“完成问诊” | `POST /api/v1/sessions/{session_id}/complete-inquiry` | `sessions.complete_inquiry` | `SessionService.complete_inquiry` | `training_session` | 已实现 |
|
|
| 提交诊断 | 提交页“提交诊断” | `POST /api/v1/sessions/{session_id}/diagnosis` | `sessions.submit_diagnosis` | `SessionService.submit_diagnosis` | `training_submission` | 已实现 |
|
|
| 提交治疗 | 提交页“提交治疗方案” | `POST /api/v1/sessions/{session_id}/treatment` | `sessions.submit_treatment` | `SessionService.submit_treatment` | `training_submission` | 已实现 |
|
|
| 生成评价 | 报告页“生成 AI 评价报告” | `POST /api/v1/sessions/{session_id}/evaluation` | `sessions.create_evaluation` | `EvaluationService.create_evaluation`、`ScoringAgent.score`、`ReportAgent` | `scoring_rule`、`knowledge_chunks`、`training_record` | 已实现 |
|
|
| 历史评价列表 | 历史页刷新 | `GET /api/v1/evaluations` | `evaluations.list_evaluations` | `EvaluationService.list_history` | `training_record` | 已实现 |
|
|
| 评价详情 | 历史页详情/报告页 | `GET /api/v1/evaluations/{evaluation_id}` | `evaluations.get_evaluation_detail` | `EvaluationService.get_detail` | `training_record` | 已实现 |
|
|
| PDF 导出 | 报告页“导出 PDF” | `POST /api/v1/evaluations/{evaluation_id}/export-pdf` | `evaluations.export_pdf` | `PdfExportService.export` | `training_record` | 已实现 |
|
|
| 知识检索 | 后端预留/评价内部使用 | `GET /api/v1/knowledge/search` | `knowledge.search_knowledge` | `KnowledgeService.search_guidelines` | `knowledge_sources`、`knowledge_documents`、`knowledge_chunks` | 已实现 |
|
|
| LLM Fast 测试 | LLM 测试页“测试 Fast” | `POST /api/v1/llm/test/deepseek-fast` | `llm_test.test_deepseek_fast` | `OpenAICompatibleLLMClient.chat` | 无长期表 | 已实现 |
|
|
| LLM Reason 测试 | LLM 测试页“测试 Reason” | `POST /api/v1/llm/test/deepseek-reason` | `llm_test.test_deepseek_reason` | `OpenAICompatibleLLMClient.stream_chat/chat` | 无长期表 | 已实现 |
|
|
|
|
## 2. 当前数据表状态
|
|
|
|
当前运行只依赖新表:
|
|
|
|
```text
|
|
case_base
|
|
traditional_case
|
|
teaching_case
|
|
scoring_rule
|
|
case_exam_item
|
|
training_session
|
|
training_order
|
|
training_submission
|
|
training_record
|
|
prompt_templates
|
|
knowledge_sources
|
|
knowledge_documents
|
|
knowledge_chunks
|
|
user_learning_profiles
|
|
audit_logs
|
|
```
|
|
|
|
旧表不参与运行。旧表删除后,后端测试和前端构建均已通过。
|
|
|
|
## 3. 关键业务边界
|
|
|
|
- `X-User-Id` 是会话、提交、评价和历史记录的隔离依据。
|
|
- Chat 消息只作为短期 memory 使用,不作为长期历史保存。
|
|
- 检查/检验结果只来自 `case_exam_item`,不由 LLM 编造。
|
|
- 完整训练结束后只沉淀 `training_record`。
|
|
- 删除病例会删除病例相关业务数据和训练记录,但保留 `audit_logs`。
|
|
- 病例详情接口不返回标准答案和隐藏病史。
|
|
|
|
## 4. 核心状态流
|
|
|
|
```text
|
|
inquiry -> diagnosis -> treatment -> evaluating -> evaluated
|
|
```
|
|
|
|
- `inquiry`:允许 Chat、查看提示、申请检查、完成问诊。
|
|
- `diagnosis`:允许提交诊断。
|
|
- `treatment`:允许提交治疗方案。
|
|
- `evaluating`:允许生成 AI 评价。
|
|
- `evaluated`:允许查看报告、导出 PDF、查看历史。
|