Files
AIclinicalresearch/docs/03-业务模块/IIT Manager Agent/05-测试文档/LLM 友好型质控报告评估与优化方案 V2.md

107 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# **LLM 友好型质控报告评估与优化方案**
**文档版本:** v2.1 (基于团队反馈优化)
**评估对象:** qc-report-test0102-pd-study-2026-02-08.xml
**评估日期:** 2026-02-08
## **🚀 一、 核心共识Context Protocol v2.1**
经过团队讨论,确定采用 **“XML 容器 \+ Markdown 内容”** 的混合模式,并支持 **双格式输出** 以满足不同场景。
### **1.1 双格式策略 (Dual Format Strategy)**
后端 QcService 应支持 format 参数:
* **format=json (Default)**: 面向 **前端 UI**。结构化强,用于渲染热力图、表格。
* **format=llm-friendly**: 面向 **LLM Context**。Token 密度高,语义清晰,包含“证据”。
### **1.2 理想的 LLM Context 结构 (V2.1)**
**设计原则**
1. **去重**:不再单独列出 rule\_definitions要求每条 issue **自包含**(同时包含现状与标准)。
2. **聚合**:按 Record ID 分组。
3. **压缩**:使用 Markdown 列表替代冗余的 XML 标签。
\<qc\_context project\_id="test0102" generated="2026-02-08"\>
\<\!-- 1\. 宏观统计 (Aggregate) \--\>
\<summary\>
\- 状态: 13/13 记录存在严重违规 (100% Fail)
\- Top 3 问题:
1\. 年龄超标 (13人)
2\. 未签知情同意书 (13人)
3\. 疼痛评分不达标 (13人)
\</summary\>
\<\!-- 2\. 问题详情 (Markdown List in XML) \--\>
\<details\>
\<record id="1"\>
\*\*严重违规 (5项)\*\*:
1\. \[R\_AGE\] \*\*年龄超标\*\*: 当前 \*\*45岁\*\* (标准: 25-35岁)。
2\. \[R\_ICF\] \*\*伦理缺失\*\*: \`informed\_consent\` 为空 (必须签署)。
3\. \[R\_VAS\] \*\*入排不符\*\*: VAS评分 \*\*2分\*\* (要求 \>= 4分)。
\</record\>
\<record id="10"\>
\*\*严重违规 (5项)\*\*:
1\. \[R\_AGE\] \*\*年龄超标\*\*: 当前 \*\*52岁\*\* (标准: 25-35岁)。
\<\!-- 其他同上 \--\>
\</record\>
\</details\>
\</qc\_context\>
## **🛠️ 二、 实施建议 (Action Items)**
### **2.1 后端改造:让报错信息“自包含”**
这是消除 rule\_definitions 依赖的关键。我们需要在生成 Issue 时,就把标准塞进去。
* **Before (HardRuleEngine)**:
return { message: "年龄不在范围内" }
* **After (HardRuleEngine)**:
// 动态拼接模板
return {
message: \`当前 \*\*${actualValue}\*\* (标准: ${rule.min}-${rule.max})\`,
structured\_evidence: { value: actualValue, range: \[25, 35\] }
}
### **2.2 System Prompt 增强 (V2.1)**
参考团队建议,强化“证据引用”指令。
\# Role
你是一名资深的临床监查员 (CRA)。
\# Input Format
你收到的 \`\<qc\_context\>\` 包含了项目的质控报告。
\- \`\<details\>\` 区域按受试者列出了具体违规项。
\- 每一行违规项都包含了 \*\*\[规则ID\]\*\*、\*\*错误类型\*\*、\*\*现状值\*\* 和 \*\*标准值\*\*。
\# Critical Instructions (思维链约束)
在回答用户问题时,你必须遵循以下步骤:
1\. \*\*定位 (Locate)\*\*: 找到用户询问的 \`\<record\>\`。
2\. \*\*提取 (Extract)\*\*: 读取具体的报错行。
3\. \*\*引用 (Cite)\*\*: 在回答中明确引用现状值和标准值。
\- ✅ 正确: "1号患者年龄违规因为他当前 \*\*45岁\*\*,而方案要求 \*\*25-35岁\*\*。"
\- ❌ 错误: "1号患者年龄不对。" (太模糊)
\- ❌ 错误: "1号患者年龄违规请检查。" (无证据)
4\. \*\*诚实 (Grounding)\*\*: 如果报告里没写的数值(比如血压),绝对不要编造,直接回答“报告未提及”。
\# Example
User: "10号病人有什么大问题"
Assistant: "10号病人有 \*\*5项严重违规\*\*。最主要的是 \*\*年龄超标\*\*,他当前 \*\*52岁\*\*,远超出了 \*\*25-35岁\*\* 的入排标准。此外还存在伦理知情同意书缺失的问题。"
## **📊 三、 收益预估**
1. **Token 节省**:相比 V1.0 XMLV2.1 混合格式预计节省 **40%-60%** 的 Token去掉了大量的 \<issue\>, \<field\>, \<message\> 标签)。
2. **幻觉消除**通过“自包含”设计LLM 不需要跨段落去查找规则定义,所有信息都在一行内,上下文注意力极其集中。
3. **开发解耦**:前端用 JSON 渲染界面LLM 用 Text 文本推理,互不干扰。
**结论:** 团队的建议非常棒。V2.1 方案已采纳 **混合格式** \+ **自包含报错** \+ **引用增强 Prompt**,这是目前最优的工程解法。