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

4.5 KiB
Raw Blame History

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,这是目前最优的工程解法。