ubuntu 本地部署deepseek r1 蒸馏模型
本文中的文件路径或网络代理需要根据自身环境自行删改
一、交互式chat页面
1.1 open-webui 交互窗口部署:基于docker安装,且支持联网搜索
Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台,旨在完全离线操作。它支持各种 LLM 运行器,如 Ollama 和 OpenAI 兼容的 API,内置 RAG 推理引擎,使其成为强大的 AI 部署解决方案。它支持个人离线部署类openai api接口服务,也支持商用的类openAI api 接口服务
1.1.1 安装 open-webui 配置环境
Ollama下的open-webui交互项目地址
- 我使用的是win11的wsl2 ubuntu 子系统(也可以使用VM虚拟机):window11使用wsl2安装Ubuntu22.04
- linux 安装配置docker与网络代理:Ubuntu 安装 docker 配置环境及其常用命令
- 拉取open-webui docker镜像并运行容器(含代理)
如果仅仅使用本地部署的LLM api 接口不使用openAI的api-key可以不使用代理
# 使用 open-webui 项目官方启动docker容器的命令
# 不同的是,由于后续可能使用openai的api-key,因此在创建容器时需要使用 -e 加入http 网络代理,我服务器的代理地址是http://host.docker.internal:7891
# 即现对于官方的命令加入了:-e HTTP_PROXY=http://host.docker.internal:7891 -e HTTPS_PROXY=http://host.docker.internal:7891
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui -e HTTP_PROXY=http://host.docker.internal:7891 -e HTTPS_PROXY=http://host.docker.internal:7891 --restart always ghcr.io/open-webui/open-webui:main
# --add-host=host.docker.internal:host-gateway的作用:
# macOS 和 Windows:
#在 macOS 和 Windows 上,Docker Desktop 会自动设置 host.docker.internal 为宿主机的 IP 地址,容器可以直接使用这个主机名与宿主机通讯。#Linux:
#在 Linux 系统上,Docker 并不会自动创建 host.docker.internal 的解析。为了让容器能够通过 host.docker.internal 访问宿主机,你需要手动添加这个主机名和对应的宿主机 IP 地址。# 使用 host-gateway
# 通过在 docker run 命令中添加 --add-host=host.docker.internal:host-gateway:
# 这里的 host-gateway 将自动解析为 Docker 守护进程所运行的主机的 IP 地址,意味着容器对 host.docker.internal 的访问将被成功解析到宿主机的 IP。这使得在 Linux 上的使用体验与 macOS 和 Windows 变得一致。
查看启动成功:
docker ps -a
查看代理是否加入:
# 进入容器内部
docker exec -it open-webui bash
printenv
验证代理是否成功:
curl -x $HTTPS_PROXY -I www.google.com
退出容器内部
# 退出容器内部
exit
- 在本地浏览器输入 127.0.0.1:3000 进入open Webui界面
端口3000是和上文容器启动命令中的参数 -p 3000:8080 对应的
- 第一次进入需要创建管理员账号,创建即可
- 创建完成后稍等片刻,点击页面左下角的设置,可以进行配置
如果是本地部署的Ollama服务,就不用特殊处理,如果是其他的框架部署的LLM api服务,或者是商业的api,就需要配置“管理openai api 链接”里面的内容了 - 配置完成后即可进行对话(具体可以见下文不同的LLM api 服务的配置)
- 需要联网使用的话可以按下面配置(代理改成自己的实际地址)
1.1.2 ChatBox部署
// 待更…
二、部署deepseek r1 api接口
2.1 Ollama 部署
2.1.1 安装配置Ollama 环境
Ollama github地址
ubuntu 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
查看ollama 版本
ollama -v
其他的ollama 命令
ollama
查看ollama的服务运行状态
# 要查看当前正在运行的服务,可以使用以下命令:
sudo systemctl list-units --type=service --state=running## 要查看所有服务的状态,可以使用以下命令: sudo systemctl list-unit-files --type=service
systemctl 其他常用命令
# 查看某个特定服务的状态, 如果您想查看某个特定服务的状态,可以使用:
systemctl status <service_name>
## 例如:
systemctl status nginx# 启用或禁用服务的自动启动
## 启用服务以在启动时自动启动:
sudo systemctl enable <service_name>
## 禁用服务以在启动时不自动启动:
sudo systemctl disable <service_name>## 其他相关命令
### 启动服务:
sudo systemctl start <service_name>
### 停止服务:
sudo systemctl stop <service_name>
### 重启服务:
sudo systemctl restart <service_name>
2.1.2 Ollama 拉取部署本地的LLM api
- 下载deepseek R1模型:deepseek-r1 模型下载
# 拉取 DeepSeek-R1-Distill-Qwen-1.5B
ollama pull deepseek-r1:1.5b
# 查看本地的模型
ollama list
- 本地运行/部署 DeepSeek-R1-Distill-Qwen-1.5B
ollama run deepseek-r1:1.5b
运行后可以使用终端对话了
3. 与open-webui的交互
浏览器打开一阶段我们部署的open-webui镜像服务,即浏览器输入 127.0.0.1:3000
我的Ubuntu是基于win11的镜像网络,部署到子系统localhost的服务可以直接在win11的本地localhost访问,故我将官方默认的地址更改为127.0.0.1, 具体可以见: https://github.com/open-webui/open-webui#troubleshooting, 如下图所示:
然后点击左侧“模型”的按钮刷新下,可以发现 deepseek-r1:1.5b 已经在列表中(列表中其他的模型是因为我加入openai的官方key,可以忽略)
回到聊天页面,选择deepseek-r1:1.5b聊天即可,如下:
2.2 vllm 部署
2.2.1 安装配置vllm环境
// 待更 …
2.2.2
// 待更 …