提示:实际尝试了很多方法,均以失败告终,结论是Dify 1.0+对离网部署(信创环境)很不友好,但挺适合有网环境的。自己本机想部署一个作为应用开发还不错,但是离网环境还是多看看网友们的部署情况,找到几个帖子推荐离网部署用Dify 0.15.3版本,准备记完该坑去试试Dify 0.15.5版本哈哈,别问,问就是反骨(活该反复踩坑O(∩_∩)O)!


前言

离网环境:Ubuntu GPU服务器;有网环境:Windows10(我的本机电脑)

4月份开始研究本地部署Dify,准备搭建Dify+deepseek+本地知识库的智能问答模型。由于服务器在内网,一直也是参考离网环境部署的资料。
上一篇我的本机部署成功,也成功接入了我离网环境部署的deepseek模型(URL配置http://ip:11434);当离网环境Dify部署完成,访问http://ip:80成功后,以为进度起码完成了50%,后面按有网环境的步骤往下就行,结果卡在了离线环境Dify ollama插件安装,尝试了离线包安装、本地安装插件打包镜像上传两种方式,均不同程度的失败。


方式一:离线包安装

插件安装了两次,第一次安装显示成功,但本地没有插件;再本地上传安装一次,插件有了(就很神奇),在设置中添加模型,保存模型时失败。docker中看了日志,提示是pypi访问失败的问题,由于Dify中下载的ollama插件存在很多Python库的依赖,而Python很多包是国外源(离网环境又不能使用魔法o(╥﹏╥)o),所以一直失败,也尝试了离线包采用dify-plugin-repackaging项目重新打包成新的插件安装包再安装,也失败了,还是报同样的问题。
下面是该方法尝试过程及参考的帖子,大家想尝试的可以看看(可能只是我安装失败,哈哈~)。

1、插件本地直接安装法

部分参考:Dify集成ollama
访问有网环境的Dify服务http://127.0.01:80(记得先打开docker启动服务),点击工具->Dify市场->模型,选择需要的模型,我这里是ollama,点击模型,选择“安装”按钮旁边的下载图标即可(有网环境点击安装就可以了)。
在这里插入图片描述
在这里插入图片描述
点击插件->本地插件->安装即可,需要等一会儿,完成会显示成功。
在这里插入图片描述在这里插入图片描述
插件有了,开始添加模型,点击右侧用户头像->设置->模型供应厂商->添加模型,配置模型名称、URL。(这里有坑!!在我的有网环境中,到这一步也卡了,主要是模型名称随意起名的问题:模型名称不要填写错误,因为我用的deepseek32b的模型,所以名称填了deepseek32b,结果报错:An error occurred during credentials validation: API request failed with status code 404: {"error":"model \"deepseek32b\" not found, try pulling it first"};豆老师解答可能是模型原因、可能是名称有误,我的模型正常运行,故可能就是名称了,查了一下自己当时模型部署时起的名称,改正后就保存成功了!)
查看模型名称,可以在部署模型的离线服务器上执行命令ollama list
在这里插入图片描述
我的有网环境配置好后就可以成功使用模型问答了,但是离网环境就是挂在了这步,模型保存失败,排查下来就是插件的原因。
在这里插入图片描述
有网环境部署成功的测试结果如下,和离网环境本地测试对比了一下,效果还不错,速度和离线服务器上差不多,比open webUI好太多了,之前在webUI上,页面加载比较慢,问题回答速度也不太行,模型幻觉严重,后面在离线服务器上的dify接入本地模型后,测试上传文件和建立知识库后的模型工作情况。
在这里插入图片描述
在这里插入图片描述
离线服务器中运行及退出模型命令(ollama)

	# 运行模型
	ollama run 模型名称
	# 退出问答
	/bye 或 Ctrl+d
2、离线环境Dify1.0+插件重新打包法

参考:Dify 实战:纯内网1.0+版本,攻克模型工具插件离线安装难题,链接来源于小红书博主“陆肯”的帮助,非常感谢!
基本就是根据该帖下载 dify-plugin-repackaging项目(需要使用魔法)做了一遍,该帖up成功了,但是我打包的时候就报错了,提示也是pypi的问题,豆老师让修改 DNS 配置,但是我的服务器只能内网,只能找其他方法了。

3、配置修改法

部分参考:dify1.0.0版本以上添加通过ollama添加模型时无反应或者 internal server error
实践了一下,没解决我的问题。

方式二:重新打包插件镜像

参考:Dify1.X之后内网部署插件如何安装
在本地有网环境的Dify项目中先安装对应的模型插件,再将插件镜像重新打包上传离网环境,重启docker服务,结果离网环境的Dify项目还是识别不到ollama插件。

1、本地有网环境插件安装镜像打包

基本完全参照上面帖子,最后打包镜像有微小区别。
进入项目的plugin_daemon目录查看是否有插件,参考的博主是dify1.1.2原来没有该目录,教程上写的运行后即有,没有的伙伴可以先运行一下,我的是dify1.1.3打开有这个目录,但是空目录。
在这里插入图片描述
图形界面或命令行启动服务
方式一:命令行
Win+R输入cmd打开命令行,进入项目的docker目录cd dify/docker
使用docker ps命令查看是否启动服务
在这里插入图片描述
使用docker-compose up -d命令启动服务,再次查看服务状态,已启动。
在这里插入图片描述
方式二:图形界面
在这里插入图片描述
桌面打开docker,在images中查看各个镜像状态,前边圆点空心表示未启动,实心表示已启动,启动服务可以点击对应镜像后边的actions。启动后容器中也会有相应记录。

浏览器打开127.0.0.1:80访问本地服务,后续根据“离线包安装”方式中提到的有网环境插件安装、添加模型即可。

插件目录plugin_daemon已存在我们安装的ollama模型插件信息。
在这里插入图片描述
打包新的插件镜像

	# 关闭服务
	docker compose down
	# 重新启动服务 
	docker compose up -d
	# 列出正在运行的容器,从中找到 plugin_daemon 服务对应的容器 ID 或名称
	docker ps
	# 使用 docker commit 命令基于该容器创建新的镜像 <容器ID或名称> 替换成上一步得到的服务对应的ID或完整名称 我用的ID
	docker commit <容器ID或名称> langgenius/dify-plugin-daemon:0.0.6-local-25

在这里插入图片描述
验证新镜像docker images,可见新的镜像已存在。
在这里插入图片描述
导出镜像,并通过WinSCP上传到离线服务器的dify项目docker目录中

	# 导出镜像
	docker save 1642c2a6b1fd【镜像images_id】 -o XXX.tar

在这里插入图片描述
在这里插入图片描述

2、离网环境新插件镜像导入及服务重启
	# 关闭服务
	docker-compose down
	# 查看镜像信息
	docker images
	# 删除原来的插件镜像  去掉中括号及内容后食用
	docker rmi -f【强制删除】 22fe0ebca8ab【镜像images_id】

在这里插入图片描述

	# 导入镜像
	docker load -i dify-25plugin.tar

	# 查看镜像信息
	docker images

	# 修改镜像信息 添加仓库名和标签
	docker tag e90cdc3b5f24 langgenius/dify-plugin-daemon:0.0.6-local

在这里插入图片描述
重启服务

	# 启动服务
	docker-compose up -d

	# 查看服务状态
	docker ps

插件服务启动正常,但是访问http://ip:80时,没有插件信息,安装失败!

总结

经历以上3大方法及其他尝试后,又找到了其他Dify安装避坑指南的帖子,决定重新出发,下载低版本的Dify继续,等我记坑,下次一定要成功!!O(∩_∩)O哈哈~
参考:本地Dify为什么无法添加Ollama
这个帖子下面的回答,完美阐述了我的心声,扎铁了老心o(╥﹏╥)o~
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐