Dify集成MinerU插件解析PDF失败排查

  • 作者: 凯哥Java(公众号:凯哥Java)
  • AI相关
  • 时间:2025-11-24 17:05
  • 70人已阅读
简介 我在本地docker安装了minerU,在dify中也集成了minerU插件。但是测试pdf解析,返回:Failedtoparsefile.result:{"detail":"NotFound"}你在Dify中测试MinerU插件时遇到 {"detail":"NotFound"} 错误,这通常是因为

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

我在本地docker安装了minerU,在dify中也集成了minerU插件。但是测试pdf解析,返回:

Failed to parse file. result: {"detail":"Not Found"}

你在Dify中测试MinerU插件时遇到 {"detail":"Not Found"} 错误,这通常是因为Dify无法正确访问你本地部署的MinerU服务。问题根源往往出在网络连接配置上。

下面是一个排查流程图,可以帮助你系统地定位问题:

🔧 逐步排查与解决

请按照以下步骤逐一检查和修正配置:

1. 检查 MinerU 服务的 Base URL 配置

在 Dify 的 MinerU 插件配置中,Base URL 必须填写你运行 MinerU 服务的宿主机在局域网内的IP地址,而不是 localhost 或 127.0.0.1

  • 原因:当 Dify 服务(通常也运行在Docker容器中)尝试访问配置为 localhost 的 MinerU 服务时,它访问的是 Dify 自己的容器内部,而不是宿主机上的 MinerU 服务。

  • 如何获取本机IP

    • Windows:打开命令提示符 (cmd),输入 ipconfig,查找"IPv4 地址"。

    • macOS:打开终端,输入 ipconfig getifaddr en0 (无线网络) 或 ipconfig getifaddr en1 (有线网络)。

    • Linux:打开终端,输入 ip addr 或 hostname -I

  • 正确配置示例

    • MinerU服务的Base URLhttp://192.168.1.100:8888 (将 192.168.1.100 替换为你的实际IP,端口确保是MinerU服务暴露的端口)。

    • 令牌:留空(本地部署通常不需要)。

    • 服务类型:选择"本地部署"。

2. 确认 MinerU 容器正常运行

确保你的 MinerU Docker 容器正在运行,并且端口映射正确。

  • 检查容器状态

    docker ps
  • 查看容器日志

    docker logs <你的mineru容器名或ID>
  • 确认端口映射:在运行 MinerU 容器的命令中,确保包含了端口映射,例如 -p 8888:8888。你的 Docker 运行命令应类似于:

    docker run -p 8888:8888 ... 其他参数 ... mineru:latest

3. 检查 Dify 的 FILES_URL 配置

这个配置项会影响 Dify 处理文件的方式,配置不正确可能导致类似的错误。

  • 找到 Dify 的 .env 配置文件

  • 修改 FILES_URL :

    • Docker Compose 部署FILES_URL=http://api:5001

    • 其他部署方式FILES_URL=http://你的Dify宿主机IP:5001 (例如 http://192.168.1.100:5001)

  • 保存并重启 Dify 服务以使配置生效。

4. 验证网络连通性

在运行 Dify 服务的主机上,使用 curl 命令测试是否能访问到 MinerU 服务:

curl http://你的宿主机IP:8888

如果无法连通,说明 MinerU 服务未成功启动或网络配置有误。


尝试下面方案:

我本地ip:   连接特定的 DNS 后缀 . . . . . . . :   本地链接 IPv6 地址. . . . . . . . : fe80::6a52:d4c0:3c25:8458%20   IPv4 地址 . . . . . . . . . . . . : 192.168.8.117   子网掩码  . . . . . . . . . . . . : 255.255.255.0   默认网关. . . . . . . . . . . . . : 192.168.8.1 在dify中配置minerU插件的API key授权配置信息如下: 凭证名称:本地 MinerU服务的Base URL:http://dify服务:8000 

令牌:未填写 

服务类型:本地部署


🔍 问题排查步骤

1. 首先测试 MinerU API 是否正常响应

在宿主机上运行以下命令测试连通性:

# 测试健康检查端点
curl http://192.168.8.117:8000/health

# 或者测试基础端点
curl http://192.168.8.117:8000/

如果这些命令没有返回有效响应,说明 MinerU API 服务本身有问题。

curl http://192.168.8.117:8000/health {"status":"ok","torch":true,"sam2":true,"depth_pro":true}

原来问题出在了这里,我的8000端口被sam2服务占用了。

果断修改docker 配置文件:

明白了!你的 SAM2 模型占用了 8000 端口,需要将 MinerU API 端口改为 18000。修改方法如下:

🛠️ 修改 MinerU 端口配置

在你的 docker-compose 文件中,修改 mineru-api 服务的端口映射:

mineru-api:
  image: mineru-vllm:latest
  container_name: mineru-api
  restart: always
  profiles: ["api"]
  ports:
    - 18000:8000  # 修改这里:宿主机端口改为18000,容器内端口保持8000
  environment:
    MINERU_MODEL_SOURCE: local
  entrypoint: mineru-api
  command:
    --host 0.0.0.0
    --port 8000    # 容器内端口保持8000不变
    # 其他参数保持不变...
  volumes:
    - E:\DockerDataMountPath\MinerU:/data
  ulimits:
    memlock: -1
    stack: 67108864
  ipc: host
  deploy:
    resources:
      reservations:
        devices:
          - driver: nvidia
            device_ids: [ "0" ]
            capabilities: [ gpu ]

🔄 重启步骤

  1. 停止并删除当前容器

    docker stop mineru-api
    docker rm mineru-api
  2. 使用修改后的配置重新启动

    # 进入包含 docker-compose.yml 的目录
    docker-compose up -d mineru-api
  3. 验证新端口是否工作

    curl http://192.168.8.117:18000/health

📝 更新 Dify 配置

修改成功后,在 Dify 中更新 MinerU 插件配置:

  • Base URLhttp://192.168.8.117:18000

  • 其他配置保持不变

💡 注意事项

  1. 端口冲突检查:确保 18000 端口没有被其他服务占用

    netstat -an | findstr 18000
  2. 防火墙设置:如果开启了防火墙,确保 18000 端口允许访问

  3. 如果使用 docker-compose:确保修改的是你实际使用的 docker-compose 文件,然后运行:

    docker-compose down mineru-api
    docker-compose up -d mineru-api

修改完成后,请测试新端口的连通性,然后在 Dify 中重新配置并测试 PDF 解析功能。


TopTop