docs(health-profile): 添加防编造加固修订记录到导出健康档案设计文档

补充了关于导出摘要出现虚构病例问题的详细分析和修复方案,
包括检索策略优化、空数据兜底处理和prompt重写等三层防护措施。
```
This commit is contained in:
link2026
2026-05-30 20:06:12 +08:00
parent dad9d43486
commit 7ad41c5f09
26 changed files with 9062 additions and 7697 deletions

View File

@@ -62,15 +62,20 @@ enum HealthExportPrompts {
? "# 就诊摘要"
: "# 就诊摘要 — \(intentLabelCN)"
return """
正在帮患者撰写一份给社区医生看的就诊摘要。要求:
- 严格输出 Markdown,标题用 # / ##,不要 markdown 围栏
- 只用「数据」中给出的信息,数据缺失就写「无记录」
- 不要给诊断意见、用药建议或「建议就医」之类的话
- 引用数值时保留单位 + 参考范围,异常项前加 ⚠️
- 全文中文,简洁,医生 30 秒内能扫完
- 不要复述「数据」二字,不要输出 JSON
是健康数据整理员。任务是把下面【真实数据】(JSON)里**已经存在**的内容,
原样整理成一份给社区医生看的就诊摘要。这是**抽取 / 搬运**任务,不是创作。
结构(严格按以下 6 段):
【最重要的铁律 —— 违反即失败】
- 只能使用【真实数据】JSON 里**真实出现过**的内容。
- 严禁编造或推测任何数字、日期、症状、药物、检查结果、诊断,哪怕看起来很合理。
- JSON 里没有的信息,对应小节一律写「无记录」,不要补全、不要举例、不要套用常见病例模板。
- 数值必须原样照搬(含单位与参考范围);status 为 high/low/abnormal 的指标前加 ⚠️。
- 「主诉」「患者疑问」可参考【患者原话】,但不得加入原话与数据里都没有的症状。
输出格式:
- 严格 Markdown,标题用 # / ##,不要 markdown 围栏,不要输出 JSON,不写「数据」二字。
- 不给诊断意见、用药建议或「建议就医」。全文中文,简洁,医生 30 秒能扫完。
- 严格按以下 6 段(顺序与标题固定):
\(labelLine)
## 主诉
## 患者背景
@@ -79,12 +84,33 @@ enum HealthExportPrompts {
## 在服药与过敏
## 患者疑问
数据:
—— 格式示例(只示范「无记录」与数值写法,内容请勿照抄)——
真实数据:{"profile":{},"symptoms":[],"indicators":[{"name":"","value":"38.5","unit":"","range":"36-37.2","status":"high","date":"2026-05-01"}],"reports":[],"diaries":[],"time_window":{"from":"2026-04-02","to":"2026-05-02"}}
输出:
# 就诊摘要 — 近期健康摘要
## 主诉
无记录
## 患者背景
无记录
## 近期症状(按时间倒序)
无记录
## 关键指标(异常项优先)
⚠️ 体温 38.5 ℃(参考 36-37.2,2026-05-01)
## 在服药与过敏
无记录
## 患者疑问
无记录
—— 示例结束(以上咳嗽/体温等仅示范格式,切勿出现在你的输出里)——
现在,严格根据下面这份【真实数据】生成;数据里没有的就写「无记录」,**禁止编造**:
【真实数据】:
\(dataJSON)
患者原话:\(userPrompt)
患者原话:\(userPrompt)
现在请生成 Markdown(直接输出,不要思考过程,不要 <think> 标签):
再次强调:只整理上面【真实数据】里真实出现过的内容,禁止编造任何数字/日期/症状/药物。
直接输出 Markdown,不要思考过程,不要 <think> 标签:
/no_think
"""
}