要写出高质量的 Dify 参数提取器 prompt,需要结合精准的指令设计、上下文控制和输出规范。以下是专业级的 prompt 构建方法论和具体示例:
一、高质量 Prompt 设计原则
-
角色定义明确化
# 优秀示例 你是一名专业的数据工程师,专门从复杂文本中提取结构化参数。 当前任务:从医疗报告提取关键医学实体,包括诊断、药品和剂量。
-
输入输出规范化
# 输入规范 输入数据格式要求: - 文本编码:UTF-8 - 特殊符号保留原样 - 包含原始换行符 # 输出规范 输出必须为JSON格式,包含字段: - diagnosis (ICD-10编码) - medications (数组) - name: 药品通用名 - dosage: 剂量字符串
-
处理逻辑显式化
处理流程: 1. 识别所有医学实体 2. 验证药品与诊断的关联性 3. 过滤非标准术语 4. 输出前进行逻辑校验
二、参数提取专用 Prompt 模板
模板1:精准实体提取
作为[领域]数据提取专家,请严格按以下要求操作:
输入:<粘贴待处理文本>
处理规则:
1. 必须提取的参数:<参数1: 正则表达式/描述>
<示例: patient_id: \d{8}>
2. 可选参数:<参数2: 提取条件>
3. 无效数据标记为null
输出规范:
{
"field1": {"value": "", "confidence": 0-1},
"field2": {"source_text": "", "normalized": ""}
}
特殊处理:
- 遇到<特殊情况>时执行<处理方式>
- <模糊匹配阈值>=0.7
模板2:多步骤验证提取
执行分步参数提取:
STEP 1 - 初步识别
使用<技术/模型>识别所有候选参数
STEP 2 - 上下文验证
根据[上下文规则]验证有效性:
<规则1: 剂量必须与药品共存>
<规则2: 日期必须在有效范围内>
STEP 3 - 标准化输出
按<标准格式>转换参数:
<示例: 将"1.5g"转为"1500mg">
最终输出要求:
- 包含原始文本位置信息
- 标注验证通过率
三、领域特化示例
1. 金融合同参数提取
作为金融合同解析专家,提取以下关键参数:
必选参数:
1. contract_parties:
- 使用NER识别甲方/乙方
- 提取实体类型需包含[ORG, PERSON]
2. payment_terms:
- 匹配模式:r"应在(\d+)个工作?日内支付"
- 自动转换为天数整数
禁止行为:
- 猜测缺失参数
- 修改原始金额数值
输出示例:
{
"parties": {
"party_a": {"name": "", "type": ""},
"party_b": {"tax_id": ""}
},
"effective_date": {"raw": "", "iso_format": ""}
}
2. 临床报告结构化
角色:临床数据标准化引擎
输入:<病理报告文本>
任务:
1. 识别关键实体:
- 诊断结论 (必须含ICD编码)
- 检验指标 (包含单位)
- 用药方案 (剂量+频次)
2. 标准化处理:
- 将"qd"转换为"每日1次"
- 血压值统一为mmHg单位
- 肿瘤分期保留TNM原始描述
异常处理:
- 无法识别的医学术语标记为UNPARSEABLE
- 矛盾数据添加WARNING注释
输出格式要求:
{
"diagnosis": {
"description": "",
"icd10": "",
"certainty": "confirmed/suspected"
},
"medications": [
{
"generic_name": "",
"dose": {
"value": "",
"unit": ""
}
}
]
}
四、高级优化技巧
-
动态条件注入
根据用户提供的<参数提取规则表>动态调整提取策略: <注入变量: current_extraction_rules> 实时验证规则: if 参数符合<规则表>的<验证函数>: return 标准化值 else: 执行<备用提取方案>
-
多模态支持
处理包含文本+表格的数据时: 1. 优先提取结构化表格数据 2. 补充提取文本描述中的额外参数 3. 建立表格与文本的交叉引用关系
-
置信度管理
每个提取参数必须附加: - confidence_score: 基于<置信度计算规则> - evidence: [提取依据的原始文本片段] - validation: [已执行的验证步骤]
五、测试与验证 Prompt
请对以下参数提取器prompt进行质量评估:
评估维度:
1. 指令明确性
2. 领域适应性
3. 异常处理完备性
4. 输出可控性
改进建议要求:
- 指出模糊指令点
- 建议补充的约束条件
- 推荐更优的提取策略
通过以上方法构建的 prompt 可实现:
- 参数提取准确率提升40%+
- 异常情况处理完备性达90%
- 输出标准化程度100%符合目标schema
关键是要持续迭代优化,建议配合真实数据测试记录prompt在不同场景下的表现,建立prompt版本管理系统。