解决Dify的Ollama插件添加模型时保存成功但模型为空的问题


最近组里安排了点调研Dify任务。我跟着基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程一步一步走,前面都挺顺利,但在Dify的Ollama中引入大模型这一步卡住了:按照原文,我添加了本地安装的deepseek-r1:1.5b,点击“保存”,提示“保存成功”但模型列表却是空的。

我摸索了半天,改了一通配置终于搞定,其中关键的一步配置在CXXN上看到了一些蛛丝马迹,但CXXN搞的付费订阅非常恶心,我从其他渠道弄明白以后,总结了一下自己做的操作,共享出来。

问题的根因

  • Dify默认配置对插件安装过程的超时限制较短,且依赖下载可能因网络问题失败
  • 确保 Ollama 插件有足够时间完成安装,并通过国内镜像源加速依赖下载

解决方法

假定你已经在Windows环境完成了Docker安装、Dify镜像的下载和启动、Ollama的本地安装,要在Dify里的Ollama插件添加大模型:

先把Dify镜像停掉:去dify/docker目录下执行

docker-compose down

可以看到关联的镜像状态都是Removed

编辑dify/docker/docker-compose.yaml,在environment部分增加

PYTHON_ENV_INIT_TIMEOUT: 600 # 延长超时时间(默认值较低可能导致安装超时)
PIP_MIRROR_URL: “https://pypi.tuna.tsinghua.edu.cn/simple” # 替换为国内镜像源加速依赖安装

重启dify

docker-compose up -d

先看下Docker的日志,出现了一些相关的信息:

等到Ollama安装完成时,再回到Dify的Ollama添加大模型,发现之前保存的模型都出现,可以继续下一步了,Good Job!

其他的排查手段和配置更改

在排查过程中,我还做了一些其他配置变更,关系应该不大但是还是记录下,便于后续查阅。

如何判断Docker中运行的Dify能访问本地安装的Ollama?

Windows/Mac是默认支持的,Linux需要一些配置。进入Dify运行中的镜像,执行curl http://host.docker.internal:11434确认。还可以执行curl http://host.docker.internal:11434/api/tags确认ollama已安装的模型。

Ollama是否要手动启动(执行ollama serve)?

Windows确定它在运行即可,如果在运行就不需要再次执行。

是否要降低Ollama版本到0.15.x?

没必要。Ollama的版本号遵循语义化版本规范,看上去比较跳跃:如1.6.0 → 0.15.8 → 1.4.1,某些博文提到添加模型不成功可以通过降低版本到0.15.x来解决。但我在最新的1.6.0通过上文中的配置也解决了这个问题。

Ollama的环境变量是否是必须的?

也许不是必须的,但是在我之前的尝试里已经添加过了:OLLAMA_HOST:0.0.0.0、OLLAMA_ORIGING:*

配置变更后重启Dify服务的方法

配置变更后一般都要重启一下。这步不是在Docker Desktop,而是在Dify目录下,cmd中分别执行:

docker-compose down
docker-compose up -d

Dify配置页面“系统模型设置”提示“系统模型尚未完全配置”是否有影响?

没有任何影响。实际上当你配置好LLM和TEXT EMBEDDING两种模型后,这个提示就会消失。

附:Docker+DeepSeek+Dify安装全流程简述(Win10版)

为了便于查阅和后续的复用,我简单总结了一下整个流程。完整版可以看基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

  1. 下载安装docker、WSL,确定Docker Desktop启动时右下角出现Engine running
    1.1 (可选)迁移docker镜像路径:Settings->Resources->Disk image location
    1.2 (可选,国内一般必须)配置国内镜像源:Settings-> Docker Engine
    1.3 (可选)拉取镜像,cmd中docker pull hello-world
  2. 安装Omalla及DeepSeek等大模型(本地版)
    2.1 Ollama官网下载
    2.2 安装,(可选,可以通过特殊方法改变安装路径), cmd中ollama -v可以看到版本即表示安装成功
    2.3 安装DeepSeek等大模型
    2.3.1 在Ollama官网的models中找到对应模型及版本,点击复制按钮获取全名,以deepseek-r1:1.5b为例,cmd输入ollama run deepseek-r1:1.5b开始下载
    2.3.2 下载完成即进入对话模式
    2.4 (可选)安装ChatBox AI
    2.4.1 选择Ollama API即可图形化使用本地的DeepSeek
    2.4.2 连接Ollama失败时新增两个环境变量OLLAMA_HOST:0.0.0.0、OLLAMA_ORIGING:*,需重启Ollama
  3. 安装Dify
    3.1 去Dify的Github,可以git clone也可以下载最新版的zip包直接解压到目标路径
    3.2 .env.example复制并重命名为.env
    3.3 在Dify目录拉去依赖docker-compose up -d,完成后在docker中确认镜像都在运行中
  4. Dify配置
    4.1 进入本地Dify:http://127.0.0.1/,创建管理员用户
    4.2 右上角头像,设置->模型供应商,添加Ollama插件
    4.3 Ollama插件中添加已安装的模型:模型名称为带版本号的全称,URL为http://host.docker.internal:11434。如果添加提示成功但仍然没有模型,参考正文的解决方法。
  5. 创建应用,开始使用。