```
docs(health-profile): 添加防编造加固修订记录到导出健康档案设计文档 补充了关于导出摘要出现虚构病例问题的详细分析和修复方案, 包括检索策略优化、空数据兜底处理和prompt重写等三层防护措施。 ```
This commit is contained in:
@@ -21,10 +21,13 @@ enum DiaryAssistPrompts {
|
||||
/// 第一轮传空数组。
|
||||
static func suggest(content: String, coveredDimensions: [String] = []) -> String {
|
||||
let covered = coveredDimensions.filter { !$0.isEmpty }
|
||||
let coveredLine = covered.isEmpty ? "无" : covered.joined(separator: "、")
|
||||
let excludeRule = covered.isEmpty
|
||||
let coveredSet = Set(covered)
|
||||
let allowed = dimensions.filter { !coveredSet.contains($0) }
|
||||
let allowedLine = allowed.isEmpty ? "(已基本问全)" : allowed.joined(separator: "、")
|
||||
// 正向约束:1.7B 对「只能从这些里挑」比对「严禁选这些」遵循更好。
|
||||
let scopeRule = covered.isEmpty
|
||||
? ""
|
||||
: "\n- 本轮【严禁】选择这些已覆盖维度:\(covered.joined(separator: "、"));只能从其余维度里挑。"
|
||||
: "\n- 已问过的维度【不要再问】:\(covered.joined(separator: "、"))。本轮只能从这些还没问的维度里挑:\(allowedLine)。"
|
||||
|
||||
return """
|
||||
你是社区医生的小助手。患者写了一段身体状态的健康记录,信息可能不够完整。
|
||||
@@ -41,7 +44,7 @@ enum DiaryAssistPrompts {
|
||||
8. 生活方式 —— 睡眠、饮食、运动习惯、压力
|
||||
|
||||
硬性规则:
|
||||
- 本轮每个问题必须来自【不同】维度,严禁两条落在同一维度(例如不能两条都问"伴随症状")。\(excludeRule)
|
||||
- 本轮每个问题必须来自【不同】维度,严禁两条落在同一维度(例如不能两条都问"伴随症状")。\(scopeRule)
|
||||
- 只问【最新记录】里还没写明的事。方括号 `[xxx]` 表示该话题已被提出、只是细节待填,【不要】再作为新问题重复它。
|
||||
- 不给诊断、不给用药建议、不写「建议就医」。
|
||||
- q ≤ 20 字,像真人医生在问;fill 是采纳后追加到原文的中文补充句,可含方括号占位符如 [时间] [部位]。
|
||||
@@ -66,7 +69,7 @@ enum DiaryAssistPrompts {
|
||||
]}
|
||||
|
||||
现在输出 JSON。
|
||||
已覆盖维度(必须避开):\(coveredLine)
|
||||
本轮可选维度:\(allowedLine)
|
||||
【最新记录】:
|
||||
\(content)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user