系统:Ubuntu 22,8C16G,50G存储硬盘,香港地域云主机
选择香港地域的机器主要是为了pull镜像方便,此次部署只是对流程做介绍,不考虑性能,要好的性能选gpu机器
apt-get update apt-get install -y docker.io sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
~# docker --version
Docker version 26.1.3, build 26.1.3-0ubuntu1~22.04.1
~# docker-compose --version
Docker Compose version v2.33.1
设置配置文件 ollama-config.yaml
# 监听的主机地址,默认情况下,Ollama 会监听所有可用的网络接口
host: 0.0.0.0
# 监听的端口号,这里设置为 11434,你可以根据需要修改
port: 11434
# 模型相关配置
models:
- name: deepseek-r1:1.5b
path: /root/.ollama/models/deepseek-r1-1.5b
# 模型的参数配置,可根据具体模型调整
parameters:
temperature: 0.7
top_p: 0.9
- name: deepseek-r1:7b
path: /root/.ollama/models/deepseek-r1-7b
parameters:
temperature: 0.6
top_p: 0.85
# 日志配置
log:
level: info
format: json
# 缓存配置
cache:
enabled: true
size: 10GB
pull 并运行ollama容器
docker run --name my-ollama -d -p 11434:11434 -v /root/ollama-config.yaml:/root/.ollama/config.yaml -v /home/models:/root/.ollama/models ollama/ollama
下载deepseek-r1:1.5b模型
~# docker exec -it 38d2ab396811 /bin/sh
# ollama serve
Error: listen tcp 0.0.0.0:11434: bind: address already in use
# ollama run deepseek-r1:1.5b
pulling manifest
pulling aabd4debf0c8... 100% 1.1 GB
pulling 369ca498f347... 100% 387 B
pulling 6e4c38e1172f... 100% 1.1 KB
pulling f4d24e9138dd... 100% 148 B
pulling a85fe2a2e58e... 100% 487 B
verifying sha256 digest
writing manifest
success
>>> Send a message (/? for help)
# ollama list
NAME ID SIZE MODIFIED
deepseek-r1:1.5b a42b25d8c10a 1.1 GB 2 minutes ago
~# curl http://localhost:11434/api/pull -d '{"model": "deepseek-r1:1.5b"}'
{"status":"pulling manifest"}
{"status":"pulling aabd4debf0c8","digest":"sha256:aabd4debf0c8f08881923f2c25fc0fdeed24435271c2b3e92c4af36704040dbc","total":1117320512}
......
......
{"status":"verifying sha256 digest"}
{"status":"writing manifest"}
{"status":"success"}
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api
浏览器访问 http://ip:3000 (注意:首次登录不要去注册,直接登录,默认超管账号:root,密码:123456),登录后直接跳转到更新用户信息界面修改后再重新登陆,如下截图:
## 添加渠道
可以是在线的模型,比如deepseek官方注册后拿到sk能直接用,也可以是自己本地的模型,这里我们添加自己本地的模型
#### 渠道》》添加新的渠道
## 测试渠道是否可以正常联通
## 添加令牌
#### 令牌》》添加新的令牌
## 拿到令牌
## 测试通过 one-api 请求模型
#### curl 方式
~# curl http://127.0.0.1:3000/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-MQWo7iWhmSKVEwSrxxxxxxxx64aD098A08b464bCcC9C4" \
-d '{
"model": "deepseek-r1:1.5b",
"messages": [
{
"role": "user",
"content": "你好"
}
],
"stream": false
}'
{"id":"chatcmpl-13","object":"chat.completion","created":1741342162,"model":"deepseek-r1:1.5b","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":"\u003cthink\u003e\n\n\u003c/think\u003e\n\n你好!很高兴见到你,有什么我可以帮忙的吗?无论是学习、工作还是生活中的问题,都可以告诉我哦!😊"},"finish_reason":"stop"}],"usage":{"prompt_tokens":4,"completion_tokens":31,"total_tokens":35}}
#### api请求工具(如postman、apipost等等,这里我用的是apipost工具)
#### 查看 token 消耗
可以看到上面有2次请求,已经消耗了一些token
docker run --name open-webui -d -p 8080:8080 --add-host=host.docker.internal:host-gateway -v /home/ubuntu/data/open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
## 访问web界面(http://127.0.0.1:8080/)
#### 登录后界面
这次测试ollama、deepseek和webUI都是在一台机器上,且端口都是默认的,所以webUI能自动识别到deepseek-r1:1.5b 模型
#### 如果webUI和模型不在一台机器上需要添加外部模型链接
点击左下角的管理员图标:设置》管理员设置》外部链接
#### 由于11435非标准ollama端口,加上外部链接后webUI就能识别到这个模型(为了测试效果,11435端口对应的模型是deepseek-r1:7b)
#### 同理,加上配置了One-api 鉴权的模型再来看看效果
通过上面的部署我们可以看到,Open-webui 提供了一个非常友好的web交互界面,让用户可以不用懂代码、不用懂开发就能体验私有化大模型,One-api 提供了一个非常优秀的安全鉴权措施,2个工具都是拿来开箱即用,非常方便;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。