以下是问答环节的总结:
问题
用户 zhouciming 无法在 Dify 工作流中使用文档提取器节点从扫描版PDF中提取文本。尽管部署了本地 Unstructured 服务并在 .env 和 docker-compose.yaml 中配置了 ETL_TYPE=Unstructured(以及 OCR 环境变量),但输出仍然为空。
诊断
社区成员 kurokobo 阐明了原生配置的局限性:
- 设置范围:
.env中的ETL_TYPE=Unstructured设置主要用于知识库索引(数据集上传),而不是工作流中的运行时“文档提取器”节点。 - PDF处理: 即使在知识库中,Dify 也经常默认使用
pypdfium2处理 PDF,无论ETL_TYPE设置如何,这意味着 Unstructured 服务(及其 OCR)未被调用。 - 文档与实际情况: 用户指出
.env注释中提到了 Unstructured 对“针对 pptx 的文档提取器节点”的支持,这证实了其在工作流节点中对其他文件类型(如 PDF)的应用默认不受支持。
解决方案 / 变通方法
若要在工作流中对扫描版PDF执行OCR:
- 建议: 不要使用原生文档提取器节点,而应使用 Unstructured 插件(可在 Dify 应用市场中获取)或其他社区创建的 OCR 工具。
- 原因: 插件允许明确配置处理策略(例如,启用 OCR),而原生节点不通过全局环境变量暴露或遵守这些策略。