一、文档说明

适用环境:麒麟Kylin Linux(x86_64架构)、双T4 GPU、离线无外网、内网互通

部署范围:Ollama(Qwen3:32B+BGE-M3)+ 自定义向量/重排服务 + Dify知识库

核心用途:提供完整部署流程、后台保活、端口配置、Dify对接及问题排查,适配日常运维及交接使用

二、环境基础信息

2.1 系统与硬件

  • 操作系统:麒麟Kylin Linux
  • 架构:X86_64
  • 显卡:双T4 GPU(支持CUDA加速)
  • 网络:离线无外网,仅内网互通

2.2 部署组件及端口规划(核心)

部署组件

用途

端口

备注

Ollama服务

运行Qwen3:32B对话模型、管理BGE-M3向量模型

13333

默认11434修改,全局生效

BGE-M3向量服务

文本向量化,支持Dify对接

8001

基于FastAPI开发

Reranker重排服务

检索结果重排,提升召回精度

8002

基于FastAPI开发

三、Ollama部署(核心步骤)

3.1 离线安装与模型导入

1. 上传Ollama离线安装包至服务器,执行安装命令(具体命令根据安装包类型调整);

2. 离线导入模型(提前准备模型离线包):

命令1:导入Qwen3:32B对话模型

ollama load qwen3:32b

命令2:导入BGE-M3向量模型

ollama load bge-m3

3. 查看已安装模型(验证导入成功):

OLLAMA_HOST=:13333 ollama list

3.2 后台启动(关闭SSH不中断,推荐)

1. 清理旧进程(避免端口占用):

pkill -9 ollama

2. 后台常驻启动(指定13333端口,模型常驻24小时):

screen -dmS ollama /bin/bash -c "OLLAMA_HOST=0.0.0.0:13333 OLLAMA_KEEP_ALIVE=24h ollama serve"

3.3 常用操作(screen会话管理)

  • 进入会话查看Ollama运行日志:screen -r ollama
  • 退出会话(服务继续后台运行):Ctrl+A+D
  • 关闭会话(停止Ollama服务):screen -S ollama -X quit

3.4 全局端口配置(无需每次输入端口)

执行以下命令,配置后直接使用ollama命令即可访问:

echo "export OLLAMA_HOST=:13333" >> /etc/profile

source /etc/profile

3.5 服务验证

1. 查看13333端口监听状态:

netstat -antp | grep 13333

2. 本地接口测试(确认服务正常):

curl http://127.0.0.1:13333/api/tags

四、BGE-M3向量服务 + 重排服务部署

4.1 环境准备

- 虚拟环境路径:/home/model-serve/venv

- 项目根目录:/home/model-serve

- 依赖:提前打包离线依赖包,在服务器本地安装

4.2 虚拟环境激活

source /home/model-serve/venv/bin/activate

4.3 后台启动命令(断开SSH不中断)

1. BGE-M3向量服务(8001端口)

source /home/model-serve/venv/bin/activate && \

cd /home/model-serve && \

nohup python embedding/app.py > embedding.log 2>&1

2. Reranker重排服务(8002端口)

source /home/model-serve/venv/bin/activate && \

cd /home/model-serve && \

nohup python reranker/app.py > reranker.log 2>&1

4.4 服务验证与日志查看

1. 查看端口监听(确认两个服务都启动):

netstat -antp | grep python

2. 查看日志(排查启动失败问题):

查看向量服务日志:tail -f /home/model-serve/embedding.log

查看重排服务日志:tail -f /home/model-serve/reranker.log

4.5 BGE-M3核心参数(Dify配置用)

  • 模型名称:bge-m3
  • 最大上下文长度:8192 tokens
  • 向量输出维度:1024维
  • 建议切片长度:2048~4096 tokens(兼顾速度与精度)

五、Python本地测试向量调用(可选)

1. 新建测试脚本 emb_test.py,内容如下:

from ollama import Client

# 对接13333端口

client = Client(host="http://127.0.0.1:13333")

# 单文本向量化测试

text = "测试文档内容"

res = client.embed(model="bge-m3", input=text)

print("向量维度:",len(res["embeddings"][0]))

2. 运行测试:

python emb_test.py

3. 正常输出“向量维度:1024”即为测试成功。

六、Dify平台对接配置

6.1 对接Ollama对话模型(Qwen3:32B)

1. 登录Dify后台 → 进入【设置】→【模型供应商】→【新增Ollama】;

2. 填写以下参数,保存后测试连通性:

  • 基础URL:http://服务器内网IP:13333
  • API Key:留空(Ollama无需API Key)
  • 模型类型:对话模型
  • 模型名称:qwen3:32b

6.2 对接BGE-M3向量模型

1. 继续在Ollama供应商下,【添加模型】;

2. 填写以下参数,保存即可:

  • 基础URL:http://服务器内网IP:13333
  • 模型类型:Embedding(嵌入模型)
  • 模型名称:bge-m3
  • 上下文长度:8192

3. 进入Dify知识库 →【设置】→【模型配置】,在“向量模型”下拉框选择“bge-m3”即可使用。

6.3 对接自定义向量/重排服务(可选)

若不使用Ollama内置向量/重排,需对接8001/8002端口的自定义服务:

  • 自定义向量模型:添加模型 → 选择“自定义向量模型”,接口地址填写 http://内网IP:8001/embed
  • 自定义重排模型:添加模型 → 选择“自定义重排模型”,接口地址填写 http://内网IP:8002/rerank

6.4 防火墙端口放行

执行以下命令,放行核心端口(确保Dify能访问):

firewall-cmd --add-port=13333/tcp --permanent

firewall-cmd --add-port=8001/tcp --permanent

firewall-cmd --add-port=8002/tcp --permanent

firewall-cmd --reload

七、常见问题汇总(运维必备)

问题现象

原因

解决方法

关闭SSH窗口,服务停止

未使用后台启动方式,进程随SSH会话终止

使用screen或nohup后台启动,禁止前台直接运行

Ollama修改端口后,client连接失败

未加载全局端口环境变量

执行 source /etc/profile 加载环境变量

重排服务启动后直接退出,报错127

未激活虚拟环境、未进入项目目录

启动命令必须携带 source 虚拟环境 + cd 项目目录

Qwen3:32B显存占用低、推理慢

后台服务丢失GPU并行参数,未启用双卡并行

使用screen交互式会话启动ollama serve(推荐方案)

Dify无法访问内网服务

防火墙未放行端口,或Dify使用127.0.0.1访问

1. 放行对应端口;2. Dify填写服务器真实内网IP,禁止用127.0.0.1

八、开机自启配置(可选)

1. 编辑开机自启文件:

vi /etc/rc.d/rc.local

2. 写入以下内容(等待系统初始化,避免启动失败):

sleep 20

# 启动Ollama服务

screen -dmS ollama /bin/bash -c "OLLAMA_HOST=0.0.0.0:13333 OLLAMA_KEEP_ALIVE=24h ollama serve"

# 启动向量服务

source /home/model-serve/venv/bin/activate && cd /home/model-serve && nohup python embedding/app.py > embedding.log 2>&1

# 启动重排服务

source /home/model-serve/venv/bin/activate && cd /home/model-serve && nohup python reranker/app.py > reranker.log 2>&1

3. 赋予文件执行权限:

chmod +x /etc/rc.d/rc.local

九、运维速查版(精简,日常快速操作)

9.1 核心启动命令

  • Ollama启动:pkill -9 ollama && screen -dmS ollama /bin/bash -c "OLLAMA_HOST=0.0.0.0:13333 OLLAMA_KEEP_ALIVE=24h ollama serve"
  • 向量服务启动:source /home/model-serve/venv/bin/activate && cd /home/model-serve && nohup python embedding/app.py > embedding.log 2>&1
  • 重排服务启动:source /home/model-serve/venv/bin/activate && cd /home/model-serve && nohup python reranker/app.py > reranker.log 2>&1

9.2 核心查看命令

  • 查看端口:netstat -antp | grep 13333/8001/8002
  • 查看Ollama日志:screen -r ollama
  • 查看向量/重排日志:tail -f /home/model-serve/embedding.log(或reranker.log)
  • 查看Ollama模型:ollama list

9.3 核心停止命令

  • 停止Ollama:screen -S ollama -X quit 或 pkill -9 ollama
  • 停止向量服务:kill $(ps aux | grep "embedding/app.py" | grep -v grep | awk '{print $2}')
  • 停止重排服务:kill $(ps aux | grep "reranker/app.py" | grep -v grep | awk '{print $2}')

9.4 常见问题快速解决

  • 服务启动失败:查看对应日志,优先检查虚拟环境和目录
  • Dify连接失败:检查防火墙、服务器IP是否正确、端口是否监听
  • Ollama显存不足:调整模型加载参数,或减少同时调用数量

|(注:文档部分内容可能由 AI 生成)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐