dify中问答错乱等问题90%源于未清洗非结构化文本,需在知识库创建/编辑时启用内置清洗工具,勾选移除空白字符、html标签、url邮箱三项基础规则,并针对ocr错字和结构信息做专项处理。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify中上传PDF、Word或网页抓取文本后,发现问答结果频繁错乱、关键词检索失效、向量嵌入结果漂移——这些问题90%源于非结构化文本未清洗就直接入库。原始文档里的换行符粘连、OCR识别错字、页眉页脚残留、表格转文本后的空格爆炸,都会让embedding模型“看花眼”。
定位并启用Dify内置清洗工具
进入Dify控制台 → 点击左侧【知识库】→ 新建知识库或编辑已有知识库 → 在“上传文件”下方找到【文本分段与清洗】区域 → 展开该面板。
注意:该功能仅在知识库创建/编辑流程中可见,上传完成后再无法调出此清洗界面;【必须在点击“保存并处理”前完成配置】。
一键启用基础清洗规则
勾选以下三项默认开启的规则即可应对80%常见噪音:
✔ 移除多余空白字符(自动合并连续空格、制表符、全角空格)
✔ 移除HTML标签(清除网页源码中残留的
等标记)
✔ 移除URL和邮箱地址(避免链接文本干扰语义向量化)
这一步操作起来很简单,直接勾选即可,无需额外设置。系统后台会实时调用re.sub逻辑执行,不影响上传速度。
针对PDF/扫描件的OCR错字专项清洗
方法一:正则替换高频OCR错误
在【自定义清洗规则】输入框中粘贴以下正则表达式(支持多行):
r'3\.l4%' → '3.14%'
r'0C' → '0°C'
r'1O' → '10'
r'5ec' → 'sec'
方法二:批量修正数字与单位粘连
启用【移除数字与单位间非法空格】规则 → 系统将自动处理“10 000 元”→“10000元”、“2 5 . 4 mm”→“25.4mm”等典型OCR断裂问题。
⚠️ 注意:正则替换需严格区分大小写和点号转义,例如匹配“3.14%”必须写成r'3\.14%',漏掉反斜杠会导致全部数字被误删。
保留关键结构信息的清洗策略
第一步:关闭【移除所有换行符】选项
第二步:在分段设置中将分隔符设为“\n\n”(两个换行符)
第三步:启用【保留标题层级标识】规则 → 系统会识别“### 产品参数”“## 故障排查”等Markdown标题语法,并在清洗后保留其语义权重标记
第四步:手动在【自定义清洗规则】中添加保护性正则:r'(? → 替换为空(仅删除孤立“表1 功能说明”字样,不碰正文中的“表格第1列”)
这样处理后,清洗不会抹平文档原有逻辑结构,后续按章节分段时能准确锚定技术文档的“参数表”“警告项”“操作步骤”等高价值区块。
验证清洗效果的实时预览
上传任意一个含页眉/乱码/换行错乱的PDF样本 → 点击【解析预览】按钮 → 左侧显示原始文本流,右侧同步呈现清洗后结果。
重点检查三处:【页眉页脚是否消失】、【“营\n业收\n入”是否已合并为“营业收入”】、【中文顿号、引号是否仍为全角(若业务要求保留,则不启用全角转半角规则)】。











