4.5 KiB
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)
设计原则:
- 去重:不再单独列出 rule_definitions,要求每条 issue 自包含(同时包含现状与标准)。
- 聚合:按 Record ID 分组。
- 压缩:使用 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岁** 的入排标准。此外还存在伦理知情同意书缺失的问题。"
📊 三、 收益预估
- Token 节省:相比 V1.0 XML,V2.1 混合格式预计节省 40%-60% 的 Token(去掉了大量的 <issue>, <field>, <message> 标签)。
- 幻觉消除:通过“自包含”设计,LLM 不需要跨段落去查找规则定义,所有信息都在一行内,上下文注意力极其集中。
- 开发解耦:前端用 JSON 渲染界面,LLM 用 Text 文本推理,互不干扰。
结论: 团队的建议非常棒。V2.1 方案已采纳 混合格式 + 自包含报错 + 引用增强 Prompt,这是目前最优的工程解法。