Ollama + Open WebUI 本地部署指南
简介
Ollama 是一个开源项目,提供了部署和运行各种大型语言模型的平台和工具集。Open WebUI 则是一个基于 Web 的用户界面,允许用户通过浏览器与 Ollama 进行交互。本文将详细介绍如何结合两者在本地构建私有化的 AI 问答系统。
环境准备
确保您的机器已安装 Docker 和 Docker Compose。建议使用 Linux 或 WSL2 环境以获得最佳性能。
Ollama 部署
推荐使用 Docker 方式部署,简单且易于管理。
1. 拉取镜像
docker pull ollama/ollama:latest
2. 启动容器
根据硬件配置选择相应的启动命令:
AMD 显卡 (ROCm)
docker run -d -v /mnt/c/ubuntu-wsl/data/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm
英伟达显卡 (CUDA)
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
仅 CPU 模式
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
模型管理
Ollama 支持多种主流开源模型。以下是常用模型列表:
| 模型名称 | 参数量 | 大小 | 启动命令 |
|---|---|---|---|
| llama3 | 8B | 4.7GB | ollama run llama3:8b |
| llama3 | 70B | 40GB | ollama run llama3:70b |
| gemma | 7B | 5.0GB | ollama run gemma:7b |
| mistral | 7B | 4.1GB | ollama run mistral:7b |
| qwen | 72B | 41GB | ollama run qwen:72b |
| phi3 | 3.8B | 2.2GB | ollama run phi3:3.8b |
| llava | 7B | 4.7GB | ollama run llava:7b |
下载与运行模型
进入容器内部运行模型,首次执行会自动下载:
docker exec -it ollama ollama run llama3
等待下载完成后,即可进入交互模式输入指令。
Open WebUI 部署
Open WebUI 提供友好的图形界面,支持多轮对话、文件上传等功能。
1. 启动容器
docker run -d -p 8186:8080 --add-host=host.docker.internal:host-gateway -v openwebui:/app/backend --name open-webui ollama/open-webui
*注意:请确保端口 8186 未被占用。
2. 访问界面
浏览器访问 http://localhost:8186/。首次访问需注册账号(通常使用邮箱)。
3. 连接 Ollama
在设置中确认 Ollama 的连接地址。如果是本地 Docker 网络,可能需要配置环境变量 OLLAMA_HOST 指向 http://host.docker.internal:11434。
优化中文回复体验
默认模型可能倾向于英文回复。可以通过创建自定义 ModelFile 来强制指定语言。
1. 创建 Modelfile
在项目目录下创建 Modelfile 文件:
from llama3
PARAMETER temperature 1
PARAMETER num_ctx 6000
PARAMETER top_k 50
PARAMETER top_p 0.95
SYSTEM """
尽你的最大可能和能力回答用户的问题。不要重复回答问题。不要说车轱辘话。语言要通顺流畅。
RULES:
- Be precise, do not reply emoji.
- Always response in Simplified Chinese, not English.
"""
2. 构建自定义模型
ollama create cusllama3 -f Modelfile
3. 应用新模型
在 Open WebUI 中选择 cusllama3 作为对话模型,即可获得更规范的中文回复。
常见问题排查
- 无法连接 Ollama: 检查防火墙是否开放 11434 端口,确认 OLLAMA_HOST 环境变量配置正确。
- 显存不足: 尝试使用量化版本较小的模型(如 7B 以下),或减少上下文长度 num_ctx。
- CPU 占用过高: 生成过程会占用大量 CPU/内存资源,建议关闭其他高负载程序。
总结
通过 Docker 部署 Ollama 和 Open WebUI,用户可以低成本地拥有私有化大模型能力。配合自定义 System Prompt,可显著提升特定场景下的回复质量。


