Ollama+OpenWebUI 最佳组合:本地大模型可视化交互方案

前面两篇文章我们讲了通过Ollama在本地部署大模型,虽然使用Ollama可以在本地部署大模型。但是跟本地大模型聊天时只能通过命令行界面,本文讲解通过好看的WEB界面跟本地大模型聊天。

本地部署大模型,请查阅这篇文章《保姆级教程:你的电脑也能本地离线跑大模型,全程零门槛》

本地部署大模型进阶篇,请查阅这篇文章《 WSL+Ollama 开机自启终极配置,本地大模型永不掉线》

OpenWebUI

open-webuiGitHub上面开源的一个可扩展、功能丰富且用户友好的自托管 AI 平台,并且支持完全离线运行。它支持各类 LLM(大语言模型)的运行环境(如 Ollama)和 OpenAI 兼容的 API,并内置了 RAG (检索增强生成)推理引擎,使其成为强大的 AI 部署解决方案。

RAG检索增强生成:"检索" 指搜索本地(如公司内部)的知识库、相关文档等资源;"增强生成" 指将检索到的结果作为上下文发送给大模型,让大模型结合这些信息给出更精准的回答。

本篇教程不涉及 RAG(检索增强生成),只介绍通过OpenWebUI提供的网页界面去跟我们本地部署的大模型进行交互。

安装 OpenWebUI

查看open-webui的安装说明可以知道OpenWebUI的安装依赖Python,并且Python的版本必须大于等于 3.11 并且小于 3.13,不包含 Python3.13 版本。这是因为 Python 3.13 移除了多个底层模块(如 asyncio 部分 API 变更、distutils 彻底废弃),且 AI 生态的核心依赖库(pydantic v2fastapillama-cpp-pythononnxruntime 等)尚未完成针对 3.13 版本的全面兼容性测试。

OpenWebUI 的官方文档

查看OpenWebUI 的官方文档

系统内置的 Python 版本

查看Python官方文档可以知道,大多数 Linux 发行版本都预装了 Python,包含Ubuntu这个Linux发行版本。

Ubuntu 系统虽预装了 Python,但内置版本通常较低,可通过以下命令查看系统内置的 Python 版本:

bash 复制代码
# 查看Ubuntu系统本身的版本
lsb_release -a
# 查看内置的Python版本
python3 --version
# 查看Ubuntu系统内置的安装Python的软件源地址
apt policy python3
# 查看内置的python安装路径
which python3
# 查看python3这个命令是哪个软件包提供的
dpkg -S $(which python3)

由于Ubuntu系统的运行严重依赖内置的Python版本,所以不能直接更新或者卸载Ubuntu系统内置的PythonUbuntu 社区关于升级 Python 版本的讨论:

安装较高版本的 Python

Ubuntu 系统内置的 apt 软件源所提供的 Python 版本,是经过严格测试、与当前系统版本完全适配且稳定性极高的版本,因此系统默认不允许随意升级 Python 版本。

因此,我们需要额外安装一个版本满足 3.11 ≤ 版本 < 3.13 的 Python,并在Python内置的venv隔离环境中运行我们安装的Python版本。注意:open-webui只支持在 Python3.11 和 Python3.12 版本上面安装,不支持 Python3.13 版本。

首先,为了能让Ubuntu添加第三方软件源地址。我们需要给Ubuntu安装一个软件software-properties-common。该软件会提供一个命令add-apt-repository,这个命令可以让我们添加指定的第三方软件源地址。安装命令如下:

bash 复制代码
# 刷新Ubuntu系统的可安装软件列表(相当于刷新Ubuntu系统的应用商店)
sudo apt update
# 安装一个能让系统添加第三方软件源的工具。没有它,后面添加Python的软件源地址会失败。
sudo apt install software-properties-common -y
# 查看software-properties-common安装好后的版本
apt policy software-properties-common

第二,添加deadsnakes这个第三方软件源地址,用来安装较高版本的Pythonsoftware-properties-common软件安装成功之后,该软件会提供一个命令add-apt-repository,通过该命令我们可以给Ubuntu系统添加第三方软件源地址。查看deadsnakes官方网站 可知具体安装命令如下:

bash 复制代码
# 添加deadsnakes这个第三方软件源地址
sudo add-apt-repository ppa:deadsnakes/ppa
# 添加完成后,需要刷新Ubuntu系统的可安装软件列表(相当于刷新Ubuntu系统的应用商店)
sudo apt update

第三,安装较高版本的Python。安装前需先确认当前 Ubuntu 系统版本,以及 deadsnakes 源支持安装的 Python 版本。查看deadsnakes官方网站可知,在Ubuntu系统的jammy版本上deadsnakes提供了 Python3.7 到 Python3.9 之间的版本以及 Python3.11 到 Python3.13 的版本。 并且deadsnakes还提供了对应Python版本的关键库,比如:devvenv等等这些Python的关键内置库。

第四、安装 3.12 版本的Python以及对应的devvenv库。从Python 官网可知,Python 3.13Pythonstable稳定版本,可以放心安装。但是OpenWebUI不支持Python 3.13版本,我们改为安装Python 3.12版本。

安装命令如下:

复制代码
sudo apt install python3.12 python3.12-venv python3.12-dev -y

查看 Python 的版本

注意,此时 Ubuntu 系统中已安装两个 Python 版本,使用时需注意区分:python3 指向系统内置版本,python3.12 是我们手动安装的版本。

bash 复制代码
# Ubuntu系统内置的Python
python3 --version
which python3
# 我们自己安装的Python
python3.12 --version
which python3.12

安装 OpenWebUI

上面的准备工作完成之后,就可以安装OpenWebUI了。在home目录创建一个文件夹,用来存放OpenWebUI的安装文件。

arduino 复制代码
# cd ~进入当前登录用户的home(家)目录
cd ~
# 创建open-webui文件夹
mkdir open-webui
# 进入open-webui文件夹
cd open-webui/

创建 Python 的隔离环境

由于Ubuntu系统上面安装了两个不同版本的Python,因此我们需要使用Python内置的venv库,创建一个隔离的Python运行环境。在这个环境下,可以安全又独立的运行Python3.12版本,避免跟系统内置的Python之间发生依赖冲突。执行如下命令创建Python的隔离环境:

bash 复制代码
# 在~/open-webui/目录里面,使用用python3.12 创建虚拟(隔离)环境
python3.12 -m venv openwebui_3.12_env
# 激活环境(终端前缀变为 (venv))
source openwebui_3.12_env/bin/activate

source openwebui_3.12_env/bin/activate 命令仅对当前终端窗口生效,并非永久生效。后续每次新开终端窗口,若需使用 Python 3.12 版本,需先进入 ~/open-webui/ 目录,重新执行该命令激活虚拟环境。

千万不要执行sudo update-alternatives --installsudo update-alternatives --config这两个命令去更改Ubuntu系统内置的 Python 版本。Ubuntu系统严重依赖 Python 运行,修改Ubuntu系统默认的Python版本,可能会导致Ubuntu系统崩溃。不要轻信网上的那种"一键切换 Python 版本"的教程。

正式安装 OpenWebUI

参考open-webui 官网的安装命令进行安装。

open-webui目录下依次执行如下安装命令:

arduino 复制代码
# 进入open-webui目录
cd ~/open-webui/
# 在open-webui目录下,使用Python自带的pip命令安装open-webui
pip install open-webui

运行 OpenWebUI

在激活 Python 3.12 虚拟环境的前提下,OpenWebUI 安装完成后,执行 open-webui serve 命令即可启动服务。

arduino 复制代码
# 可以在任意目录下,执行open-webui serve命令启动open-webui服务
open-webui serve

访问 Web 界面

OpenWebUI安装成功之后,可以在浏览器上面通过http://localhost:8080访问open-webui的界面:

使用 OpenWebUI

创建管理员账号

在 Open WebUI 上创建的第一个账户将获得 管理员权限,负责控制用户管理和系统设置。

使用

通过 Ollama 启动 OpenWebUI

更新 OpenWebUI

要更新到最新版本,只需运行如下命令:

arduino 复制代码
pip install --upgrade open-webui

卸载 OpenWebUI

若因 OpenWebUI 安装包体积较大,导致磁盘空间不足,可通过以下命令卸载 OpenWebUI:

arduino 复制代码
# 查看open-webui文件夹的大小
du -sh open-webui/
# 卸载OpenWebUI
pip uninstall open-webui
# 删除home目录下的open-webui文件夹
rm -rf ~/open-webui

其他类似 OpenWebUI 的软件

除了OpenWebUI之外,类似的还有ChatWiseCherry Studio11AnythingLLM

还有浏览器插件Page Assistollama-client

如果以上的这些软件都不能满足你的需求,你还可以使用gradio自己开发一个 WebUI 界面。

参考资料 [1]

open-webui: github.com/open-webui/...

2

open-webui: github.com/open-webui/...

3

OpenWebUI 的官方文档: docs.openwebui.com/features/

4

官方文档: docs.python.org/3/

5

Ubuntu 社区关于升级 Python 版本的讨论: askubuntu.com/questions/1...

6

官方网站: launchpad.net/~deadsnakes...

7

官方网站: launchpad.net/~deadsnakes...

8

Python 官网: docs.python.org/3.13/index....

9

open-webui 官网: github.com/open-webui/...

10

ChatWise: chatwise.app/

11

Cherry Studio: www.cherry-ai.com/

12

AnythingLLM: anythingllm.com/

13

gradio: www.gradio.app/

相关推荐
写不来代码的草莓熊2 小时前
el-date-picker ,自定义输入数字自动转换显示yyyy-mm-dd HH:mm:ss格式
前端·javascript·vue.js
ssshooter2 小时前
Tauri 应用苹果签名踩坑实录
前端·架构·全栈
DeSheng2 小时前
npm 从入门到精通(二):再理解,彻底搞懂 package.json、node_modules 和 package-lock
前端
Carsene2 小时前
AutoScan Spring Boot Starter v1.3.0 发布:高级过滤与环境配置新特性
spring boot·后端
用户69371750013842 小时前
XChat 为什么选择 Rust 语言开发
android·前端·ios
程序员柒叔2 小时前
OpenCode 一周动态-2026-W15
后端·github
局i2 小时前
从零搭建 Vite + React 项目:从环境准备到干净项目的完整指南
前端·react.js·前端框架
星辰_mya2 小时前
Spring Cloud服务熔断与降级
后端·spring·spring cloud
星浩AI2 小时前
Claude Code 项目实战:多 Agent 流程编排,从原型到可运行 ChatBot
后端·claude·vibecoding