提示:建议在魔塔社区下载模型。之前在其他链接下载模型安装没问题,但在Dify中使用bge-m3模型embedding时会报错,主要报的错找不到参考的解决方案,最终在魔塔重新下载模型安装就不报错了。
前言
设备:Ubuntu GPU服务器(离线)、Windows10(联网:我的本机电脑)
工具:putty(操作离线服务器)、WinSCP(文件上传)
前置条件:目标服务器已安装ollama模型(我的不是用docker安装的)
一、模型下载
下载模型
魔塔社区下载链接(使用了魔法):bge-m3-GGUF(不用魔法也可以的,只是之前下载其他模型失败过,习惯下载模型用魔法O(∩_∩)O~)。
由于之前其他链接下载模型后,安装没有问题,在Dify中使用的时候就一直报错:[ollama] Server UnavailableError, ('Connection aborted.'.RemoteDisconnected(Remoteend closed connectionwithout response ))
,问豆老师,讲是服务器端问题,检查了端口,发现deepseek和bge-m3共享11434端口
是OK的,豆老师推荐用ollama embed
测试是否是bge-m3模型的问题,但是执行该命令报错,提示不存在该命令,我的ollama版本是0.6.1,也很新,Dify也没问题,故定位应该就是bge-m3模型的原因。又找了同个博主大大给的bge-m3-GGUF的下载链接中的另一个版本,还是遇到同样的问题,后面在魔塔社区重新下载了模型,成功了。用git
和modelscope
两种方式下载都成功了,这边用的git下载的模型。
项目中有很多版本的模型,一般是哪个模型越大,精度越高,可根据自己配置选择,我这边选择的第一个。
模型上传
上传模型至Ubuntu离线服务器(使用WinSCP直接拖拽)
二、模型安装
编写模型导入文件Modelfile,内容如下:
# from ./模型名.gguf 例如下
FROM ./bge-m3-FP16.gguf
文件建立相关命令及操作如下:
# 1. 创建文件
vim Modelfile
# 2. 打开文件后 复制内容 按键盘“i”进行文件输入 鼠标右键粘贴内容
# 3. 点击键盘左上角“Esc”,输入:wq保存并关闭文件 :q或:q!关闭文件不保存(!为强制)
导入模型
# ollama create 模型名称【自定义】-f Modelfile文件路径 例如下
# 文件目录下
ollama create bge-m3-FP16 -f Modelfile
# 非文件目录下
ollama create bge-m3-f16 -f /data/ollama/models/bgem3gguf/bge-m3-GGUF/Modelfile
验证模型导入成功
# 查看ollama中模型情况
ollama list或ollama ls
三、模型调用
访问Dify服务:http://ip:80
在设置->模型供应商处模型列表中ollama模型中添加模型,选择Text Embedding,输入模型名称(要填写正确,直接复制上面ollama list得出的模型名称)、ollama模型调用URL,点击保存;点击系统模型设置,配置Embedding模型(如果没有可以刷新一下页面)。
创建知识库测试模型
点击知识库->创建知识库,选择embedding模型为刚刚配置的bge-m3-FP16
模型。
嵌入完成,右边会有绿色√
,之前安装的模型就是在这一步报错的,这里一直嵌入失败,右边是红色!
,鼠标移动上去有报错信息,我没有找到解决错误的方法,直接重新找模型资源下载安装了。
点击前往文档,可以查看更详细信息,还可已添加更多文件。
创建demo测试
在上下文处添加刚刚创建的知识库,右边输入问题测试,发现已引用知识库中文档作为上下文后再回答。
四、部分参考链接
1. docker安装ollama,离线安装bge-m3等模型
2. Linux的Ollama离线部署与各模型gguf文件离线导入
3. Ollama 运行从 ModelScope 下载的 GGUF 格式的模型(DeepSeek 为例)