根据 Dify 官方教程一步一步操作,并在操作过程中解决了相关问题,成功安装并运行了 Dify。但在通过 Ollama 插件引入本地大模型这一步时遇到问题:
我添加了本地已经下载的模型 deepseek-r1:1.5b
,点击“保存”后提示“保存成功”,但模型列表中却没有任何内容,完全是空的。
幸运的是,我找到了一篇文章:解决Dify的Ollama插件添加模型时保存成功但模型为空的问题,文中详细分析了这个问题。我按照其中的方法进行操作,问题成功解决,这里简单记录我的实操过程以备后用。
先将Dify服务停掉
1 | docker-compose down |
修改 .env
配置文件
编辑 docker/.env
文件,将以下参数进行调整:
- PLUGIN_PYTHON_ENV_INIT_TIMEOUT
- PLUGIN_MAX_EXECUTION_TIMEOUT
原配置:
1 | PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120 |
修改为:
1 | PLUGIN_PYTHON_ENV_INIT_TIMEOUT=600 |
修改说明:
- 将插件环境初始化时间加长,避免初始化过程被提前终止;
- 启用清华 pip 镜像加速 Python 包的安装过程,防止因网络问题导致插件初始化失败。
重启 Dify 服务
保存 .env 后,重新启动服务:
1 | docker-compose up -d |
重新检查 Ollama 插件中的模型
回到 Dify 的管理后台,再次打开 Ollama 插件配置页面,惊喜地发现:原本无法显示的模型现在都出现了,并且可以正常调用使用。
是否两个参数都必须修改?逐一验证
为了进一步确认是哪一个参数修改起了作用,我尝试了以下三种组合,并每次都执行 docker-compose down
和 docker-compose up -d
重新部署:
✅ 情况 1(只改 PLUGIN_PYTHON_ENV_INIT_TIMEOUT):
1 | PLUGIN_PYTHON_ENV_INIT_TIMEOUT=600 |
→ 模型依旧正常显示 ✅
✅ 情况 2(只改 PIP_MIRROR_URL):
1 | PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120 |
→ 模型依旧正常显示 ✅
✅ 情况 3(两个都恢复默认):
1 | PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120 |
→ 模型依旧正常显示 ✅
小结与推测
- 一开始模型不显示,可能是首次安装插件时因网络问题或时间超时导致初始化失败;
- 修改了 .env 并重新部署后,插件的 Python 环境和依赖成功初始化,从而修复了模型列表为空的问题;
- 后续即便恢复原配置,因插件环境已经初始化完成,故不再受影响。