1.在Dify添加模型供应商:
模型名称就是Ollama下本地下载的模型,可以通过ollama list 查看
2.主要在基础URL这里,按照Dify官方文档:
host.docker.internal会被解析成容器宿主机的IP地址,但我按照这个配置,添加模型,直接报错,看提示是名字解析出现的问题,所以我直接改成了宿主机的IP地址,但是又提示报错,这次错误信息是API无法访问到,404错误。
3.在宿主机上使用curl工具分别对localhost,127.0.0.1,宿主机IP地址进行了post请求,测试Ollama是否正确响应,发现对localhost\127.0.0.1都正常进行了响应,但是对真实IP地址超时,判断Ollama默认安装后只绑定到了localhost
curl http://xxx.xx.xx.xx:11434/api/generate -d '{
"model": "deepseek-r1:7b",
"prompt":"1+1=?"
}'
4.配置ollama允许外网访问
先停掉服务
systemctl stop ollama
修改ollama的service文件:/etc/systemd/system/ollama.service
在[Service]下面增加一行
Environment="OLLAMA_HOST=0.0.0.0:11434"
重载daemon文件 systemctl daemon-reload
启动ollama服务 systemctl start ollama
在Dify下再次添加Ollama模型,顺利添加。
后来发现这样配置后,虽然ollama正常能运行,也能接受curl发出的API请求,但是在shell下出现这样的错误:
后来发现还需要配置一下环境变量才行:
export OLLAMA_HOST="0.0.0.0:11434"
一切OK!