当前位置: 首页 > article >正文

使用WebUI访问本地Deepseek(Ollama集成Open WebUI)

在《deepseek本地部署和使用(Linux虚拟机)》中,我们使用Ollama部署了Deepseek-r1,但是只能通过命令行方式交互,默认Ollama启动后,会启动一个监听到127.0.0.1,用以接收POST 请求,服务器使用指定的 DeepSeek-R1 模型处理提示并返回生成的响应。

 ~]# ss -tlnp|grep ollam                            
LISTEN     0           4096                 127.0.0.1:11434                0.0.0.0:*         users:(("ollama",pid=441905,fd=3)) 

curl 发送请求

请求命令如下:

curl -X POST http://127.0.0.1:11434/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-r1:1.5b",
    "prompt": "请比较一下5.4和5.12的大小。"
  }'

回显也是JSON格式,我猜测 Ollama 的 API 可能默认是以流式的方式返回数据,也就是每次生成一个词就发送一次响应。

集成WebUI

执行如下命令即可启动open webui(需要联网);在无法联网的场景下需要事先下载ghcr.io/open-webui/open-webui:main镜像,上传到服务器之后启动。

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

该命令的参数释义如下:

1. docker run
  • 含义:用于创建并启动一个新的 Docker 容器。

  • 作用:这是 Docker 的核心命令之一,用于运行容器。

2. -d
  • 含义-d 表示以 ** detached 模式** 运行容器,即在后台运行。

  • 作用:容器会在后台运行,不会占用当前终端。

3. -p 3000:8080
  • 含义:将容器内部的端口 8080 映射到宿主机的端口 3000

  • 作用:通过 localhost:3000 访问容器内部运行的服务(通常是 Web 服务)。

  • 效果:
  • LISTEN 0      4096         0.0.0.0:3000       0.0.0.0:*    users:(("docker-proxy",pid=347493,fd=4))
    LISTEN 0      4096            [::]:3000          [::]:*    users:(("docker-proxy",pid=347507,fd=4))
4. --add-host=host.docker.internal:host-gateway
  • 含义:向容器的 /etc/hosts 文件中添加一个自定义的 hosts 记录。

  • 作用:允许容器内的服务通过 host.docker.internal 访问宿主机的网络资源。

    • host.docker.internal 是 Docker 提供的一个特殊域名,指向宿主机的网络接口。

    • host-gateway 是宿主机的网关地址。

  • 效果:172.17.0.1      host.docker.internal
5. -v open-webui:/app/backend/data
  • 含义:将宿主机的 open-webui 目录挂载到容器内的 /app/backend/data 目录。

  • 作用:实现宿主机和容器之间的数据共享。容器内的数据可以持久化到宿主机的目录中。

  • 效果:
  • ~]# ll /var/lib/docker/volumes/open-webui
    总用量 0
    drwxr-xr-x 5 root root 67 2月   7 10:39 _data
6. --name open-webui
  • 含义:为容器指定一个名称 open-webui

  • 作用:可以通过这个名称方便地管理和操作容器,例如使用 docker stop open-webui 停止容器。

7. --restart always
  • 含义:设置容器的重启策略为 always

  • 作用:无论容器因为何种原因退出,Docker 都会自动重启该容器。

8. ghcr.io/open-webui/open-webui:main
  • 含义:指定要运行的 Docker 镜像及其版本。

    • ghcr.io/open-webui/open-webui 是镜像的名称,存储在 GitHub Container Registry (GHCR) 中。

    • main 是镜像的标签,表示使用的是主分支的版本。

启动后状态验证

~]# docker ps 
CONTAINER ID   IMAGE                                COMMAND           CREATED        STATUS                  PORTS                                       NAMES
50c57b182bf3   ghcr.io/open-webui/open-webui:main   "bash start.sh"   20 hours ago   Up 20 hours (healthy)   0.0.0.0:3000->8080/tcp, :::3000->8080/tcp   open-webui

访问 OpenWebUI 界面(因服务器性能,可能相应比较慢)

打开浏览器,在地址栏输入 http://主机IP地址:3000/ 并打开,进入 OpenWebUI 的聊天测试界面。首次进入需要注册账号。

选择并连接 Ollama 模型

在聊天界面的左上角选择当前在 Ollama 中运行的大语言模型。如果无选择内容,则可能是因为无法连接到 Ollama,可以进行以下修改:

 ~]# systemctl edit ollama

添加
[Service]
Environment="OLLAMA_HOST=0.0.0.0"

重启 Ollama 服务:

systemctl daemon-reload
systemctl restart ollama

重新刷新open webui的页面即可。

补充一点内容: 
1、open webui请求Ollama服务的时候,会触发ollama运行对应的model,效果其实跟ollama run mode-name一样,在回答问题期间,通过ollama ps则可查看运行的model: ~]# ollama ps NAME ID SIZE PROCESSOR UNTIL deepseek-r1:1.5b a42b25d8c10a 1.6 GB 100% CPU 4 minutes from now deepseek-r1:7b 0a8c26691023 5.5 GB 100% CPU 4 minutes from now 2、问题回答完毕,对应的model不会立即终止运行,如果一直没有问题请求,则超时被杀,再次查看就空空如也了: ~]# ollama ps NAME ID SIZE PROCESSOR UNTIL

http://www.kler.cn/a/542888.html

相关文章:

  • IDEA接入DeepSeek
  • 如何评估云原生GenAI应用开发中的安全风险(下)
  • 1.【线性代数】——方程组的几何解释
  • C++:gtest的使用
  • 【Unity3D】UGUI的anchoredPosition锚点坐标
  • 【C#零基础从入门到精通】(九)——C#if和Switch判断语句详解
  • office 365 更新后打不开word问题
  • depcheck检查node.js项目中未使用和缺失依赖的工具
  • 免费在腾讯云Cloud Studio部署DeepSeek-R1大模型
  • encodeURI(),encodeURIComponent()区别
  • AF3 gdt函数解读
  • nginx安装并部署前端项目【包括Linux与Windows系统】
  • 前端性能分析常见内容
  • C语言蓝桥杯1003: [编程入门]密码破译
  • 香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
  • 基于Springboot(Maven项目)——分页
  • 在 debian 12 上安装 mysqlclient 报错
  • 代码随想录--977有序数组的平方
  • Java Stream 全面解析
  • 使用EVE-NG-锐捷实现三层数据通信
  • 曝苹果2026年秋季推首款折叠iPhone
  • Git 安全与权限管理
  • 深入探索现代CSS:从基础到未来趋势
  • 128,【1】buuctf [极客大挑战 2019]PHP
  • 浅谈自己对RPC的理解
  • AspectJ 下 Advisor 的排序过程