先从最基础的样本准备说起。
手动从本地文件夹中挑选3至5份真实且已脱敏的医学报告——关键在于类型的“杂乱”程度:可以是扫描角度倾斜的PDF格式CT报告、带有手写红色批注的JPEG病程截图,或是表格与段落混合排版的DOCX会诊纪要。切忌使用纯文本文档,因为那样根本无法触发Dify的多模态解析能力。
文件命名同样需要留心:全部改为英文加数字的组合,例如report_ct_001.pdf、note_surgery_02.jpg。在Dify 0.12.3版本的Linux容器下,中文文件名会直接导致OCR引擎无法运行,这是已知的小问题,提前避开即可。
每份文件的体积控制在80MB以内。超过这一阈值的DICOM影像报告会被跳过OCR阶段,直接进入文本提取失败流程。

样本准备齐全后,进入配置环节。登录Dify控制台,进入「知识库」→ 点击「新建知识库」→ 在「数据接入方式」中选择「上传文件」。
这里提供两条路径,根据材料情况按需选择。
路径一:启用自动OCR + LayoutLMv3版面理解。勾选「启用高精度版面分析」,在下拉菜单中选用「medical-report-v2」预设模板,上传前再勾选「保留原始图像坐标信息」。该模板对放射科术语、箭头符号(↑↓→)、检验单表格线均有内置识别规则。
路径二:强制走纯OCR通道,特别适用于扫描件模糊或文字粘连的场景。上传文件后,在知识库设置页面点击「高级解析选项」,将「文本提取优先级」拖动至最右端「OCR Only」,手动指定OCR引擎为「PaddleOCR + 中文医疗增强词典」。这样能避免因PDF元数据损坏导致空内容入库。
额外提醒一点:如果报告中含有患者签名区域,最好提前在「内容清洗引擎」中开启「手写签名区域屏蔽」,否则签名笔迹可能被误判为临床体征描述。
接下来是实体抽取规则的设定。
进入知识库 → 点击「字段映射」→ 新建结构化Schema。添加三个必填字段:
• diagnosis(字符串类型,启用正则校验 ^[A-Z][a-z]+(?:s+[A-Z][a-z]+)*$)
• follow_up_date(日期类型,格式YYYY-MM-DD,允许相对表达式如“7天后”)
• prescribed_drugs(数组类型,每个元素启用嵌套JSON Schema校验)
在「实体识别规则」中粘贴医疗NER正则集。例如诊断关键词组:(脑梗死|II型糖尿病|慢性阻塞性肺疾病|急性阑尾炎);时间短语模式:(d+天后|d+周内|术后d+小时|下次复诊.*);药物命名规范:([^s,。;]+?(片|胶囊|注射液|粉针剂))。
规则定义好后,可以点击「测试规则」上传一份样例报告PDF,右侧的实时解析预览窗会高亮显示捕获字段。如果发现“follow_up_date”未能抓取到“1周后”,说明正则未覆盖口语化表达,需要追加(d+周[后内]|一周.*)分支。
实体规则搞定后,还有一步关键的增强:注入临床知识图谱上下文。
在应用Prompt编辑器中,将UMLS语义网络中的关系三元组以YAML格式注入。例如:
```yaml clinical_context: - entity: "高血压" relations: ["is_a", "chronic_disease", "requires_long_term_monitoring"] - entity: "氨氯地平" relations: ["treats", "hypertension", "contraindicated_with", "simvastatin"] ```
保存后,在调试面板进行测试:提问“这份报告里提到的降压药是否与他汀类联用安全?”系统会基于注入的关系自动判断并引用知识图谱证据链,而不是仅靠LLM凭空生成答案。
这一步必须在知识库做向量化之前完成。向量索引一旦构建完成,再修改上下文注入就不会影响已有chunk的语义嵌入。
最后是验证解析准确性的环节,有三种方法可以组合使用。
第一种:使用内置校验工具。在知识库点击「解析质量报告」,查看「字段填充率」「实体歧义率」「OCR置信度均值」三项指标。若任何一项低于85%,就需要回去调整OCR参数或优化正则规则。
第二种:人工抽检关键字段。导出解析结果为CSV,筛选diagnosis字段为空或包含“待确认”的行,然后定位到原始PDF第3页的手写部分,检查是否因字迹潦草导致LayoutLMv3的坐标映射偏移。如存在问题,在「版面分析微调」中上传该页图像并附上人工标注的bbox坐标JSON,触发模型的在线增量学习。
第三种:触发紧急回滚机制。如果发现某份报告将“右肺中叶”错误识别成“右肺肿瘤”,立即在知识库操作栏点击「撤回最近一次解析」,输入该文件的MD5值。系统会自动清除对应向量并禁用该文档的自定义重试策略。
整套流程走下来,基本就能让Dify从那些杂乱无章的原始医疗文本中,稳定提取出结构化的诊断结论、用药建议和随访时间点了。说到底,关键在于样本选对、引擎选准、规则调细、上下文中注入知识图谱,再加上双向校验的闭环。
