如何使用Open WebUI在HomeLab中部署开源大模型
一、什么是Open WebUI
Open WebUI是一款面向大型语言模型(LLMs)的用户友好型Web界面,支持Ollama和兼容OpenAI的API运行。它为用户提供了一种便捷的方式,与语言模型进行交互、训练和管理。Open WebUI的界面设计灵感来源于ChatGPT,确保了极佳的用户体验。无论是在桌面还是移动设备上,都能享受到无缝的响应式设计。性能快速且响应迅速。
Open WebUI为用户带来了如下强大的功能:
- 代码语法高亮:提高代码的可读性。
- 完整的Markdown和LaTeX支持:为交互体验增添丰富性。
- 本地RAG集成:通过文档交互无缝集成到聊天体验中。
- 网页浏览功能:将Web内容直接合并到对话中。
- 快捷预设支持:使用命令快速访问预设提示。
- RLHF注释:通过评分消息帮助构建用于RLHF的数据集。
- 对话标签:方便地分类和查找特定聊天。
- 多模型支持:无缝切换不同聊天模型。
- 多模态支持:允许与支持图像等多模态的模型进行交互。
- 模型文件生成器:通过Web UI轻松创建Ollama模型文件。
- 协作聊天:编排群组对话,利用多个模型的集体智慧。
- OpenAI API集成:与OpenAI兼容的API进行多功能对话。
- 聊天记录管理:轻松访问和管理对话历史。
- 语音输入支持:直接与模型进行语音交互。
- 高级参数微调:定制对话体验。
本地部署Open WebUI较为简单。Open WebUI提供了基于Docker或Kubernetes的快速安装方式,大大简化了部署过程。对于需要更新或从Ollama WebUI迁移的用户,Open WebUI也提供了详细的文档和支持。
二、通过Docker Compose快速部署
这是一个Docker Compose文件。如果你已经在HomeLab服务器上安装了Docker和Dockge,则可以直接拉取运行。如果不了解如何安装Docker和Dockge,可自行检索参考基地小组中的相关讨论。
version: "3.8" # 使用的 Docker Compose 文件版本
services:
ollama: # 定义名为 ollama 的服务
image: ollama/ollama # 使用 ollama/ollama 镜像
environment:
- OLLAMA_HOST=0.0.0.0 # 设置环境变量,允许所有 IP 访问
ports:
- 11434:11434 # 将主机的 11434 端口映射到容器的 11434 端口
volumes:
- ./data/ollama:/root/.ollama # 挂载主机目录到容器内,持久化数据
extra_hosts:
- host.docker.internal:host-gateway # 添加主机内部网络的额外解析
open-webui: # 定义名为 open-webui 的服务
image: ghcr.io/open-webui/open-webui:main # 使用 open-webui 镜像的主分支
ports:
- 3001:8080 # 将主机的 30001端口映射到容器的 8080 端口
environment:
- OLLAMA_BASE_URL=http://ollama:11434 # 设置环境变量,指向 ollama 服务
volumes:
- ./data/open-webui:/app/backend/data # 挂载主机目录到容器内,持久化数据
depends_on:
- ollama # 指定 open-webui 服务依赖于 ollama 服务
extra_hosts:
- host.docker.internal:host-gateway # 添加主机内部网络的额外解析
运行完成后,把Dockge中的ollama对应终端命令行打开,输入如下命令,以调用你需要的模型。这里以llama3.1为例:
ollama run llama3.1
模型下载完成后,打开Open WebUI的界面,地址是你的主机本地地址 + 3001端口。第一次登录需要注册帐号密码。
登录后即可进行具体设置,并选取相应的模型,你也可以填写自己的OpenAI API地址,以使用GPT4等模型。
正常情况下,现在你已经可以在界面中选择并使用llama3.1,如果还不行,可以常识重启容器。
三、功能探索
一是可以探索下界面管理。Open WebUI 提供了强大的聊天历史记录本地存储和管理功能,让用户能够高效地访问和管理与 AI 的对话记录。你可以轻松浏览整个对话历史,快速回顾之前的交互内容,并通过关键字搜索和时间筛选快速找到所需信息。Open WebUI 还可以为每个对话自动生成记录,并支持用户创建自定义文件夹进行分类管理,避免聊天内容堆积,让用户专注于当前对话。
你还可以将完整的对话记录下载存档,方便日后回顾项目进度、整理思路、或与他人分享。所有存档的对话都支持快速检索和查看,确保你可以随时访问重要信息。即使在退出网页后再次登录,依然可以方便地查看之前的聊天记录,享受持续且连贯的交互体验。
二是可以探索一下自定义模型。可以进入工作空间,选择新建模型,并基于现有基础模型来调整设置你自己的模型。在自定义模型中,还可以添加知识库,从而让AI能够好地满足你的个人需求。
精力所限,简单写到这里。欢迎探索和补充。
回复