dify 添加 ollama 无法保存

模型与算力

排查 Dify 接入 Ollama 模型时保存失败的常见原因,给出一套从网络连通到模型名、参数、权限的检查顺序。

在 Dify 里加 Ollama 模型,填完地址和模型名点保存,结果转圈、报错或者干脆没反应,这种情况很常见。多数不是 Dify 坏了,而是地址写错、容器之间不通、模型名对不上或者返回体不符合预期。这篇按排查顺序走一遍,帮你定位到具体是哪一环,而不是反复重启。

在 Dify 里加 Ollama 模型,填完地址和模型名点保存,结果转圈、报错或者干脆没反应,这种情况很常见。多数不是 Dify 坏了,而是地址写错、容器之间不通、模型名对不上或者返回体不符合预期。

这篇按排查顺序走一遍,帮你定位到具体是哪一环,而不是反复重启。记住一个原则:保存失败是接入层的问题,对话失败才是推理层的问题,两者分开看,能省掉一半时间。

先分清:保存失败到底卡在哪一步

点保存这个动作,通常不是一次请求就完事。Dify 一般会先探测你填的地址是否可达,再拉取模型列表做校验。任何一步超时或返回异常,前端都会统一表现成「保存失败」,所以你看到的报错未必是真正的原因。

表象大概率卡在哪
前端一直转圈不返回地址不可达或请求超时
弹出网络或校验错误接口能通但返回体不符合预期
提示保存成功但模型列表为空模型列表接口拉不到内容
保存成功但对话报错已进入推理层,另查显存和加载日志

先看 Dify 服务端日志里对应的那次请求,比反复点保存有用得多。日志里会记下请求的实际地址、返回码和响应内容,基本能一眼看出是连不上还是返回不对。

地址与网络:容器、局域网和本机回环的差别

这是最容易踩的一环。Dify 用容器部署时,配置里写 127.0.0.1 指向的是容器自己,不是宿主机。宿主机的 Ollama 在容器里根本看不到,自然连不上。要在容器网络里找一个可达地址,常见做法是写宿主机的内网 IP,或者用容器编排里约定的服务名。

  • Ollama 默认只监听本机回环,需要显式放开监听地址,改完必须重启服务才生效
  • 跨机器访问先确认端口通不通,再确认中间有没有反向代理改写路径或把超时设得太短
  • 地址末尾多写或漏写路径、端口写错一位,都会直接导致探测失败
  • 用容器编排部署时,容器内访问宿主机要用编排约定的地址,不要照抄浏览器里的地址

判断标准很简单:从 Dify 所在的那台机器或那个容器里,能不能访问到 Ollama 的端口。如果换一台机器能通、Dify 这台不通,那就是网络边界问题,继续调配置没用。

# 在 Dify 容器内执行,验证到 Ollama 的网络是否可达
curl -v http://<你填的地址>:<端口>/api/tags
# 看返回码和响应体,能返回 JSON 说明网络这一环通了

如果这一步不通,先解决网络;通了再回到 Dify 里改地址。不要一边猜地址一边改配置,那样只会越改越乱。

模型名与接口口径:列表拉不到就是这里

网络通了但保存还是失败,问题通常出在模型名和接口口径上。模型名必须和本地实际拉下来的标签完全一致,带后缀的别名和裸名是两个东西,差一个字符都会被判为找不到。

模型名
必须和本地实际拉下来的标签逐字一致,大小写和分隔符都要对
模型列表接口
Dify 靠它拉取可选模型,Ollama 没暴露该接口或版本太旧时列表会是空的
模型文件路径
被环境变量改过时,服务读的是另一个目录,会出现已下载但识别不到
返回体
接口通了但结构不符合预期,校验阶段同样会失败

保存前先在浏览器或命令行直接请求一次模型列表接口,能返回内容再回到 Dify 填。这一步能快速区分是 Ollama 的问题还是 Dify 配置的问题。

什么情况下不适用:如果你的 Ollama 是新装且从没拉过任何模型,先拉一个模型再排查接口,否则列表本来就是空的,你会把正常现象误判成故障。

参数、权限与保存后不生效

前面几环都通了,还要看看参数和权限。上下文长度、并发等参数填了超出本地实际能力的值,校验阶段就可能被拒。本地没有鉴权时不要乱填密钥字段,填了反而可能被判为无效凭据。

  • 保存成功但对话报错,说明问题已经从接入层转移到推理层,单独看显存和加载日志
  • 多人或团队环境里,确认当前账号有模型管理权限,否则保存动作本身会被拦下
  • 先用最小配置保存一次,能过再加参数,一次加一项,出问题好定位
  • 参数值是本地能力的上限参考,不要照抄别人分享的高配数字

权限这块容易被忽略:有些环境里保存按钮能点,但提交后没反应,实际是账号权限不足被静默拦下。换一个有管理权限的账号试一次,就能确认是不是这个原因。

一套可以照着走的排查顺序

  1. 确认 Ollama 活着直接在浏览器或命令行请求模型列表接口,看是否有返回内容,确认服务和端口都正常
  2. 核对填写的地址按部署方式判断该写回环、宿主机还是内网 IP,容器部署尤其别写 127.0.0.1
  3. 逐字比对模型名和本地标签完全一致,不确定就把标签原样复制,别自己拼
  4. 清空多余配置去掉多余参数和密钥,先用最小配置保存一次,能过再逐项加回
  5. 看服务端日志仍失败就翻 Dify 服务端日志,按报错类型回到上面某一步,而不是从头再来

按这个顺序走,多数问题能在前三步定位。如果你发现是模型本身或硬件能力的问题,那就不是接入层能解决的了,需要换模型或换机器。

下一步如果你想确认换一个中转或自建方案值不值,先到站内的价格与可信度页面核对当时的数字和检测结果,再决定要不要迁移。

常见问题

Ollama 命令行里能正常对话,为什么 Dify 里就是保存不了?

命令行走的是本机回环,Dify 走的是它所在容器的网络出口,两者不是同一条路。先确认 Ollama 是否放开了对外监听,再确认 Dify 容器能访问到那个地址和端口。这一步通了,剩下的才是模型名和参数问题。

模型列表能拉出来,但点保存还是失败,可能是什么原因?

列表能拉到说明网络和接口没问题,多半卡在参数校验或权限上。把上下文长度、并发之类的自定义参数先清空,密钥字段留空,用最小配置再存一次。如果这样能过,就逐项加回来定位是哪一项被拒。

怎么判断是 Dify 的问题还是 Ollama 的问题?

用一个和 Dify 无关的客户端去请求同一个地址,能正常返回模型列表和对话结果,说明 Ollama 侧没问题,问题在 Dify 的配置或网络出口;如果那个客户端也连不上,就先修 Ollama 的监听和端口。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。