Windows下Dify连接Ollama无效
采用端口开放连接成功
需要管理员打开cmd
netsh advfirewall firewall add rule name="Ollama Port" dir=in action=allow protocol=TCP localport=11434
- 检查Ollama服务状态
• 确保Ollama服务已启动:
ollama serve
• 验证模型是否下载成功(如llama3
):
ollama run llama3
若未下载模型,需先执行ollama pull <模型名>
。
- 网络与端口配置
• 开放11434端口:Ollama默认使用11434
端口,需确保防火墙允许该端口通信:
netsh advfirewall firewall add rule name="Ollama Port" dir=in action=allow protocol=TCP localport=11434
• 跨容器/Docker网络问题:
• 若Dify通过Docker部署,需使用宿主机IP(如http://192.168.x.x:11434
)或host.docker.internal
代替localhost
。
• 检查Docker容器是否在同一网络,或通过docker network inspect
验证连通性。
- Dify配置验证
• API地址填写:
• 本地部署:http://localhost:11434
• Docker部署:http://host.docker.internal:11434
或宿主机IP。
• 模型名称匹配:确保Dify中填写的模型名称(如llama3:8b
)与Ollama已下载的模型完全一致。
- 环境变量与版本兼容性
• 设置OLLAMA_HOST:在Windows系统环境变量中添加OLLAMA_HOST=0.0.0.0
,重启Ollama以暴露服务。
• 版本检查:确认Dify和Ollama均为最新版本,避免已知兼容性问题。
- 日志排查
• Ollama日志:查看服务启动时的错误信息:
ollama serve > ollama.log 2>&1
• Dify日志:检查Dify容器日志中与Ollama相关的连接错误:
docker logs dify-api | grep -i ollama
- 其他可能问题
• Docker网络模式:启动Dify容器时添加--network=host
参数(仅限Linux宿主机)。
• 模型兼容性:部分模型可能需要额外参数(如max_tokens
),需参考Ollama文档调整Dify配置。
快速验证步骤
- 手动测试Ollama API是否响应:
curl http://localhost:11434/api/generate -d '{"model":"llama3","prompt":"Hello"}'
- 若返回正常,但Dify仍失败,需检查Dify的模型配置页面是否填写了完整的API路径(如
http://localhost:11434/api
)。