自托管版本的Dify在处理多种格式文档时,确实需要手动部署一个独立的Tika Server来解决解析问题。简单来说,就是拉取并运行一个tika:2.9.1的容器,确认http://localhost:9998/tika返回OK,接着在Dify后台启用自定义解析服务,填入正确的URL(例如http://10.0.3.5:9998),测试连接成功后保存即可。这样一来,.docx、扫描版PDF的OCR识别,甚至.zip压缩包中的递归解析,都能顺利搞定。

确认Dify环境是否已集成Tika解析能力
先进入Dify管理后台,找到【系统设置 → 文档处理】页面,观察“文档解析引擎”状态栏。如果显示“Apache Tika(已启用)”,说明底层已经预装了Tika服务,可以省心使用;如果显示“未启用”或者干脆为空,那就需要自己动手部署Tika Server,再配置连接地址。
需要特别注意的是:Dify Cloud托管版默认会启用Tika,但自托管版本(例如Docker Compose部署的)需要额外启动Tika Server容器,否则文档解析会直接失败,返回空内容——这个坑有过不少用户踩过。
部署独立Tika Server(自托管用户必做)
打开终端,执行下面这条命令,拉取并运行Tika Server的最新稳定版:
docker run -d -p 9998:9998 --name tika-server apache/tika:2.9.1
这条命令会在后台启动Tika Server,默认监听http://localhost:9998。启动后别急着走,用curl验证一下连通性:curl http://localhost:9998/tika,如果返回OK,说明服务已经就绪。
【关键前提】一定要确保Dify所在服务器能通过HTTP访问这个地址——如果Dify运行在另一台机器上,记得把localhost换成Tika Server所在主机的真实内网IP,同时开放9998端口的防火墙规则,否则会连接失败。
在Dify中配置Tika Server连接地址
第一步:登录Dify管理员账号,进入【系统设置 → 文档处理】
第二步:找到“自定义文档解析服务”开关,点击启用
第三步:在“服务地址”输入框中填写Tika Server的完整URL,例如:http://10.0.3.5:9998(注意:不要带路径后缀,也不加/tika,直接写到端口号即可)
第四步:点击“测试连接”按钮,Dify会向这个地址发送一个HEAD请求。如果成功,会显示绿色“连接正常”;如果失败,提示超时或404——这时候就需要检查URL拼写、网络是否可达,以及Tika Server是否真的在运行。
第五步:保存配置。保存之后,所有新上传的Word、Excel、PPT、PDF等文件,就会自动交给Tika Server去解析,不再依赖Dify内置的轻量解析器了。
验证多格式文档的实际解析效果
方法一:上传一个含表格和图片的.docx文件,在Dify知识库中创建新数据集并导入该文件。等状态变成“已完成”后,点击“查看内容”,确认正文段落、标题层级、表格文字都被准确提取出来,没有乱码。
方法二:上传一份扫描版PDF(需要OCR),观察一下有没有出现“正在执行OCR”的提示。如果Tika Server已经正确加载了tika-parsers-standard-package,并且系统安装了Tesseract,那么这份PDF就能被识别出可搜索文本;否则只能提取元数据,正文区域会是空的。
方法三:上传一个.zip压缩包,里面包含多个.docx和.xlsx文件,确认Dify能递归解压并分别解析每个子文件——这是Tika原生就支持的能力,不需要额外配置。
