使用Ollama和Open WebUI部署与管理本地开源大模型
如何使用 Ollama 和 Open WebUI 部署和管理本地开源大模型。内容涵盖环境准备、Docker 部署步骤、模型拉取与管理、Web 界面使用、API 集成示例以及本地 RAG 功能的配置。通过本地化部署,用户可以实现完全离线的对话体验,保障数据隐私,同时避免云服务费用。文章提供了具体的命令行操作指南和 Python 代码示例,帮助开发者快速搭建私有化 AI 环境。

如何使用 Ollama 和 Open WebUI 部署和管理本地开源大模型。内容涵盖环境准备、Docker 部署步骤、模型拉取与管理、Web 界面使用、API 集成示例以及本地 RAG 功能的配置。通过本地化部署,用户可以实现完全离线的对话体验,保障数据隐私,同时避免云服务费用。文章提供了具体的命令行操作指南和 Python 代码示例,帮助开发者快速搭建私有化 AI 环境。

在人工智能飞速发展的今天,大型语言模型(LLM)已成为开发者和技术爱好者关注的焦点。然而,云端 API 往往存在数据隐私泄露、网络延迟以及费用高昂等问题。为了解决这些痛点,本地化部署开源大模型成为了一个重要的趋势。
Ollama 是一个开源项目,旨在简化大型语言模型的部署和运行流程,使得用户能够在本地机器或私有服务器上轻松运行这些模型。而 Open WebUI 则是一个功能丰富且用户友好的自托管 Web 用户界面,它被设计用于与大型语言模型进行交互,特别是那些由 Ollama 或与 OpenAI API 兼容的服务所支持的模型。
本文将详细介绍如何结合 Ollama 和 Open WebUI,构建一个完全离线、安全可控的本地大模型环境。
Ollama 的主要目标是简化 LLMs 的部署和运行流程。它将模型的权重、配置和相关数据打包成一个被称为 Modelfile 的单元,这有助于优化模型的设置和配置细节,包括 GPU 的使用情况。
主要特点:
Open WebUI 提供了一个清晰且用户友好的聊天界面,类似于 ChatGPT,使得与大型语言模型的交互变得直观。
主要特点:
在开始部署之前,请确保您的系统满足以下要求:
对于大多数用户,官方提供的脚本是最快的安装方式。
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,验证服务是否运行:
ollama --version
如果您更倾向于使用 Docker 容器化部署:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
此命令将创建一个名为 ollama 的容器,并将模型数据持久化到 ollama 卷中,同时暴露 11434 端口供外部访问。
Ollama 通过命令行拉取模型。例如,下载并运行 Llama 3 模型:
ollama pull llama3
查看已下载的模型列表:
ollama list
启动模型进行测试(可选):
ollama run llama3
Open WebUI 同样推荐使用 Docker Compose 进行部署,因为它需要连接本地的 Ollama 服务。
创建一个新的目录并初始化 docker-compose.yml 文件:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
environment:
- "OLLAMA_BASE_URL=http://host.docker.internal:11434"
volumes:
- open-webui:/app/backend/data
restart: unless-stopped
注意:
OLLAMA_BASE_URL 指向 Ollama 服务的地址。如果在同一台机器上运行,使用 http://host.docker.internal:11434。启动服务:
docker compose up -d
部署完成后,打开浏览器访问 http://localhost:3000。首次访问时,系统会提示您注册管理员账号。登录成功后,即可进入主界面。
在 Open WebUI 的设置页面中,您可以选择连接的后端。默认情况下,如果环境变量配置正确,它会自动连接到本地 Ollama。
进入 Settings -> Connections,确认 Ollama API Base URL 是否正确指向了您的 Ollama 实例。
在聊天界面的顶部,您可以点击当前模型名称的下拉菜单,选择已加载的其他模型。例如,从 llama3 切换到 mistral。
如果您不再需要某个模型,可以使用 Ollama 命令行工具删除以释放磁盘空间:
ollama rm llama2
除了使用 Web 界面,Open WebUI 和 Ollama 都提供了 API 接口,方便开发者集成到自己的应用中。
以下是一个使用 Python 调用 Ollama API 的简单示例:
import requests
# Ollama API 地址
BASE_URL = "http://localhost:11434/api/generate"
# 请求参数
payload = {
"model": "llama3",
"prompt": "为什么天空是蓝色的?",
"stream": False
}
# 发送请求
response = requests.post(BASE_URL, json=payload)
# 获取结果
if response.status_code == 200:
result = response.json()
print(result["response"])
else:
print(f"Error: {response.status_code}")
Open WebUI 也支持 OpenAI 兼容的 API 格式。您可以在设置中启用 API 访问,然后使用标准的 OpenAI SDK 进行调用。
检索增强生成(RAG)允许模型利用本地存储的数据进行回答,这对于企业知识库或个人文档分析非常有用。
在 Open WebUI 的聊天界面中,通常有一个附件图标或'上传'按钮。支持的文件格式包括 PDF、TXT、MD 等。
Open WebUI 内置了对向量数据库的支持(如 ChromaDB)。在设置中,您可以配置向量存储的路径和参数。
上传文档后,在提问时选择该文档上下文,模型将基于文档内容生成回答,而不是仅依赖预训练知识。
OLLAMA_BASE_URL 中的 IP 地址和端口正确。llama3:8b-q4_0)。通过结合 Ollama 和 Open WebUI,用户可以构建一个强大、灵活且私有的本地大模型工作流。这不仅保护了数据隐私,还降低了对云服务的依赖。随着开源模型的不断迭代,本地部署方案将成为个人开发者和中小企业的重要基础设施。
建议定期关注 Ollama 和 Open WebUI 的官方更新,以获取最新的模型支持和功能改进。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online