|
| 1 | +!!! Abstract "" |
| 2 | + |
| 3 | + 本文以阿里云新加坡区操作系统为 Ubuntu 22.04 的 ECS 实例为例,演示 Ollama 安装及其与 SQLBot 对接。 |
| 4 | + |
| 5 | +## 安装Ollama |
| 6 | + |
| 7 | +!!! Tip "" |
| 8 | +执行以下命令安装 Ollama: |
| 9 | +```shell |
| 10 | +curl -fsSL https://ollama.com/install.sh | sh |
| 11 | +``` |
| 12 | + |
| 13 | + 输出如下: |
| 14 | + ```shell |
| 15 | + root@iZt4n4e3wmu6ddsc0hb3wbZ:~# curl -fsSL https://ollama.com/install.sh | sh |
| 16 | + >>> Installing ollama to /usr/local |
| 17 | + >>> Downloading Linux amd64 bundle |
| 18 | + ######################################################################## 100.0% |
| 19 | + >>> Creating ollama user... |
| 20 | + >>> Adding ollama user to render group... |
| 21 | + >>> Adding ollama user to video group... |
| 22 | + >>> Adding current user to ollama group... |
| 23 | + >>> Creating ollama systemd service... |
| 24 | + >>> Enabling and starting ollama service... |
| 25 | + Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service. |
| 26 | + >>> NVIDIA GPU installed. |
| 27 | + ``` |
| 28 | + |
| 29 | +## 修改Ollama配置 |
| 30 | + |
| 31 | +!!! Tip "" |
| 32 | +修改文件ollama.service,让 Ollama 访问可被外部访问 |
| 33 | +```shell |
| 34 | +vim /etc/systemd/system/ollama.service |
| 35 | +``` |
| 36 | + |
| 37 | + 加入以下内容: |
| 38 | + ``` |
| 39 | + Environment="OLLAMA_HOST=0.0.0.0:11434" |
| 40 | + Environment="OLLAMA_ORIGINS=* |
| 41 | + ``` |
| 42 | + |
| 43 | + 文件内容如下: |
| 44 | + ``` |
| 45 | + [Unit] |
| 46 | + Description=Ollama Service |
| 47 | + After=network-online.target |
| 48 | + |
| 49 | + [Service] |
| 50 | + ExecStart=/usr/local/bin/ollama serve |
| 51 | + User=ollama |
| 52 | + Group=ollama |
| 53 | + Restart=always |
| 54 | + RestartSec=3 |
| 55 | + Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" |
| 56 | + Environment="OLLAMA_HOST=0.0.0.0:11434" |
| 57 | + Environment="OLLAMA_ORIGINS=* |
| 58 | + |
| 59 | + [Install] |
| 60 | + WantedBy=default.target |
| 61 | + ``` |
| 62 | + |
| 63 | +## 重启Ollama服务 |
| 64 | + |
| 65 | +!!! Tip "" |
| 66 | +执行命令重启 Ollama: |
| 67 | +```shell |
| 68 | +systemctl daemon-reload;service ollama restart |
| 69 | +``` |
| 70 | + |
| 71 | +## 安装运行大模型 |
| 72 | + |
| 73 | +### 安装Qwen3模型(兼容 OpenAI) |
| 74 | + |
| 75 | +!!! Tip "" |
| 76 | +此处以 qwen3-14b 为例,执行以下命令安装大模型: |
| 77 | +```shell |
| 78 | +ollama run qwen3:14b |
| 79 | +``` |
| 80 | + |
| 81 | + 输出如下: |
| 82 | + ```shell |
| 83 | + root@iZt4n4e3wmu6ddsc0hb3wbZ:~# ollama run qwen3:14b |
| 84 | + pulling manifest |
| 85 | + pulling a8cc1361f314: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 9.3 GB |
| 86 | + pulling ae370d884f10: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.7 KB |
| 87 | + pulling d18a5cc71b84: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 11 KB |
| 88 | + pulling cff3f395ef37: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 120 B |
| 89 | + pulling 78b3b822087d: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 488 B |
| 90 | + verifying sha256 digest |
| 91 | + writing manifest |
| 92 | + success |
| 93 | + >>> Send a message (/? for help) |
| 94 | + ``` |
| 95 | + |
| 96 | +### 安装DeepSeek R1 模型(不兼容 OpenAI) |
| 97 | + |
| 98 | +!!! Tip "" |
| 99 | +```shell |
| 100 | +ollama run deepseek-r1:8b |
| 101 | +``` |
| 102 | + |
| 103 | + 输出如下: |
| 104 | + ```shell |
| 105 | + root@iZt4n4e3wmu6ddsc0hb3wbZ:~# ollama run deepseek-r1:8b |
| 106 | + pulling manifest |
| 107 | + pulling e6a7edc1a4d7: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 5.2 GB |
| 108 | + pulling c5ad996bda6e: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 556 B |
| 109 | + pulling 6e4c38e1172f: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 1.1 KB |
| 110 | + pulling ed8474dc73db: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 179 B |
| 111 | + pulling f64cd5418e4b: 100% ▕████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ 487 B |
| 112 | + verifying sha256 digest |
| 113 | + writing manifest |
| 114 | + success |
| 115 | + ``` |
| 116 | + |
| 117 | +## 确认Ollama服务状态 |
| 118 | + |
| 119 | +!!! Tip "" |
| 120 | +在 SQLBot 服务器上访问 Ollama 服务,确认网络是通的: |
| 121 | +```shell |
| 122 | +root@iZt4n4e3wmu6ddsc0hb3wbZ:~#nc -zv 47.237.135.165 11434 |
| 123 | +Connection to 47.237.135.165 port 11434 [tcp/*] succeeded! |
| 124 | +``` |
| 125 | + |
| 126 | +## 安装 OpenWebUI(可选) |
| 127 | + |
| 128 | +!!! Abstract "" |
| 129 | + |
| 130 | + OpenWebUI 可在 web 界面上与大模型进行交互,非必需。 |
| 131 | + |
| 132 | +### 安装docker |
| 133 | + |
| 134 | +!!! Tip "" |
| 135 | +在服务器上安装 Docker,本文使用 DataEase 项目组编写安装脚本进行安装,用户可自行选择如何安装 Docker。 |
| 136 | +```shell |
| 137 | +curl -fsSL https://resource.fit2cloud.com/get-docker-linux.sh | bash |
| 138 | + |
| 139 | + # 设置 docker 开机自启,并启动 docker 服务 |
| 140 | + systemctl enable docker; systemctl daemon-reload; service docker start |
| 141 | + ``` |
| 142 | + |
| 143 | +### 安装OpenWebUI |
| 144 | + |
| 145 | +!!! Tip "" |
| 146 | +按官方示例,以 docker 直接启动 OpenWebUI,它会自动关联本地 Ollama。 |
| 147 | +```shell |
| 148 | +docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main |
| 149 | +``` |
| 150 | + |
| 151 | + OpenWebUI启动需要一些时间,需确认容器运行状态为「healthy」: |
| 152 | + ```shell |
| 153 | + root@iZt4n4e3wmu6ddsc0hb3wbZ:~# docker ps -a |
| 154 | + CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
| 155 | + ba913b54d026 ghcr.io/open-webui/open-webui:main "bash start.sh" 10 minutes ago Up 9 minutes (healthy) 0.0.0.0:3000->8080/tcp, [::]:3000->8080/tcp open-webui |
| 156 | + ``` |
| 157 | + |
| 158 | + 启动完成后,可在浏览器上通过 IP:3000来访问,如下图所示: |
| 159 | +  |
| 160 | + |
| 161 | +## 安装配置 One API |
| 162 | + |
| 163 | +!!! Tip "" |
| 164 | +若部署的是 DeepSeek 模型,在对接 SQLBot 时需要 One API 将其转换成兼容 OpenAI 接口,否则在使用时则会出现类似下面的错误: |
| 165 | + |
| 166 | + |
| 167 | +### 部署 One API |
| 168 | + |
| 169 | +!!! Tip "" |
| 170 | +下面以 docker 来运行 One API,此处运行端口设置成了 3001: |
| 171 | +```shell |
| 172 | +mkdir -p /oneapi/data |
| 173 | +
|
| 174 | + docker run --name one-api -d --restart always -p 3001:3000 -e TZ=Asia/Shanghai -v /oneapi/data:/data justsong/one-api |
| 175 | + ``` |
| 176 | + |
| 177 | +### 配置 One API |
| 178 | + |
| 179 | +#### 添加渠道 |
| 180 | + |
| 181 | +!!! Tip "" |
| 182 | +在浏览器输入 IP:3001 访问 One API。 |
| 183 | +先添加一个 DeepSeek 的渠道,注意「模型」输入 Ollama 中 DeepSeek 的模型名称,代理输入 Ollama 的访问地址。 |
| 184 | + |
| 185 | + |
| 186 | +#### 验证渠道 |
| 187 | + |
| 188 | +!!! Tip "" |
| 189 | +添加渠道后,可以点击「测试」验证是否正常工作 |
| 190 | + |
| 191 | + |
| 192 | +#### 创建令牌 |
| 193 | + |
| 194 | +!!! Tip "" |
| 195 | +此处可以根据自己的实际情况进行相关设置。 |
| 196 | + |
| 197 | + |
| 198 | +#### 复制令牌 |
| 199 | + |
| 200 | +!!! Tip "" |
| 201 | + |
| 202 | + |
| 203 | +## 接入SQLBot |
| 204 | + |
| 205 | +### 接入 Qwen3 模型(兼容 OpenAI) |
| 206 | + |
| 207 | +!!! Tip "" |
| 208 | +基础模型此处输入之前安装运行的 qwen3:14b。 |
| 209 | +Ollama 默认运行在 11434 端口上,API 域名输入 http://47.237.135.165:11434/v1,注意47.237.135.165换成自己实际的 IP 地址。 |
| 210 | +API Key 可以随意填写,保存即可。 |
| 211 | + |
| 212 | + |
| 213 | +### 接入DeepSeek R1模型(不兼容 OpenAI) |
| 214 | + |
| 215 | +!!! Tip "" |
| 216 | +基础模型此处输入之前安装运行的 deepseek-r1:8b。 |
| 217 | +由于通过 One API 进行了转换,在 API 域名输入 One API 的服务地址,如 http://47.236.6.226:3001/v1,注意47.236.6.226:3001 换成自己实际的 IP 地址和运行端口。 |
| 218 | +API Key 填写 One API 的令牌。 |
| 219 | + |
| 220 | + |
| 221 | + 在 One API 的日志中可以查看大模型的调用情况。 |
| 222 | +  |
0 commit comments