问题:
本地安装ollama了,执行ollama list
NAME ID SIZE MODIFIED
deepseek-r1:1.5b e0979632db5a 1.1 GB 29 seconds ago
bge-m3:latest 790764642607 1.2 GB 17 minutes ago
本地也安装好dify了。现在想要dify集成ollama。在添加ollama试试错误信息:
An error occurred during credentials validation: Invalid URL 'http:192.168.8.113:11434/api/chat': No host supplied
Windows环境变量配置:
OLLAMA_HOST:0.0.0.0:11434
OLLAMA_MODELS:D:\ollama\models
解决:
你在Dify中集成Ollama时遇到的URL错误很典型,通常是格式问题。根据你提供的错误信息,问题很可能出在基础URL的填写上。下面是一个详细的排查和解决步骤。
🔧 修正基础URL格式
错误信息 Invalid URL 'http:192.168.8.113:11434/api/chat': No host supplied
明确指出了URL格式不正确。
核心问题:你填写的
http:192.168.8.113:11434
缺少了两个斜杠//
。这导致系统无法正确识别出主机地址。正确格式:基础URL必须是完整的,包括协议、主机和端口,正确的写法应该是:
http://192.168.8.113:11434
请务必在Dify的Ollama供应商配置中检查并修正这一点。
🛠️ 检查Ollama服务配置
URL格式正确后,需要确保Ollama服务本身可以被Dify访问到。你的环境变量 OLLAMA_HOST=0.0.0.0:11434
设置是正确的,这能让Ollama监听所有网络接口,而不仅仅是本地。
验证服务状态:设置好环境变量后,需要重启Ollama服务以使配置生效。重启后,可以先用简单的方法测试服务是否在正常工作:
打开浏览器,访问
http://192.168.8.113:11434
。如果页面显示
Ollama is running
,说明服务已就绪。你还可以通过命令行输入
ollama serve
来确保服务处于运行状态。
🔗 验证网络连通性
由于Dify通过Docker运行,而Ollama直接运行在宿主机上,它们之间的网络通信需要特别注意。
使用特殊主机名:在Docker容器内部,可以通过一个特定的主机名来访问宿主机。在Dify的基础URL配置中,除了使用IP地址,也可以尝试填写:
http://host.docker.internal:11434
这是Docker为容器访问宿主机提供的内部域名,有时比IP地址更可靠。
📝 在Dify中完成配置
完成上述检查后,请在Dify的模型供应商设置中按照以下信息配置:
配置项 | 建议值 | 备注 |
---|---|---|
基础 URL | http://192.168.8.113:11434 或 http://host.docker.internal:11434 | 确保格式为 http://... |
模型名称 | deepseek-r1:1.5b | 必须与 ollama list 列出的名称完全一致 |
模型类型 | 对话 | - |
上下文长度 | 4096 (如不清楚可先填此值) | - |
最大Token上限 | 4096 (如不清楚可与上下文长度一致) | - |
支持Vision | 不勾选 | 除非模型支持图像理解(如llava) |
🔎 其他故障排查
如果问题依然存在,还可以从以下方面排查:
检查防火墙:确保Windows防火墙没有阻止对
11434
端口的入站连接。核对模型名称:再次确认在Dify中填写的模型名称与通过
ollama list
命令看到的完全一致,一个字母都不能差。
按照以上步骤操作,应该能解决你遇到的问题。如果完成这些步骤后仍然报错,可以告诉我新的错误信息是什么,我们再继续分析。