在 Windows 上使用 OpenWebUI 和 llama.cpp 运行您自己的本地 AI 聊天
Source: Dev.to
(请提供您希望翻译的正文内容,我将保持原有的 Markdown 格式、代码块和链接不变,仅将文本翻译为简体中文。)
TL;DR
本地的类似 ChatGPT 的堆栈,使用 OpenWebUI 作为 UI,llama.cpp 作为推理服务器,模型来自 Hugging Face 的 GGUF 格式。所有交互都通过兼容 OpenAI 的 API 进行,因此没有 API 费用,数据也不会离开你的机器。
- 隐私: 提示和回复都保留在本机。
- 无 API 费用: 没有基于使用量的计费或配额。
- 可控性: 可自行选择模型、量化方式和上下文大小。
- 开源: OpenWebUI 和 llama.cpp 均免费且可审计。
系统要求
| 组件 | 最低 | 推荐 |
|---|---|---|
| 操作系统 | Windows 11 | – |
| 内存 | 16 GB | 32 GB(有助于更大的模型) |
| GPU | 可选(推荐用于加速) | 8 GB VRAM 或更高 |
| 磁盘 | 足够存放多 GB 的模型文件(每个模型 4–8 GB) | – |
在 Q4 量化下,7 B 模型可以在许多机器上运行;更大的模型需要更多内存。
三个堆栈组成
- OpenWebUI – 浏览器 UI(聊天、历史、模型选择)。
- llama.cpp server – 使用兼容 OpenAI 的 HTTP API 的本地推理。
- GGUF 模型 – 权重文件,下载一次后保存在磁盘上。
OpenWebUI 通过 HTTP 与 llama‑server 通信。没有使用云服务。
安装 llama.cpp(预构建二进制文件)
-
打开 PowerShell 并运行
nvidia-smi查看你的 CUDA 版本(例如 12.x)。 -
前往 llama.cpp releases 页面,下载与你的 CUDA 版本匹配的构建。
-
从 Assets 中下载 CUDA runtime DLL bundle(例如
cudart-llama-bin-win-cuda-12)。 -
将主压缩包解压到一个稳定的文件夹,例如:
C:\Program Files\llama.cpp\ -
将该文件夹添加到系统 PATH
(Windows 搜索 → Environment Variables → Path → Edit → New)。 -
解压 CUDA runtime 包,并将所有
.dll文件复制到llama-server.exe所在的同一文件夹。 -
打开一个新终端(以加载更新后的 PATH),验证安装:
llama-server --help如果看到帮助输出,说明安装成功。
安装 OpenWebUI(Python 虚拟环境)
使用 venv
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install open-webui
替代方案:Conda
conda create -n local_chat python=3.11 -y
conda activate local_chat
pip install open-webui
启动 UI:
open-webui serve
在浏览器中打开 http://localhost:8080(或终端显示的端口)。UI 将可见;模型连接将在下一步配置。
下载 GGUF 模型
对于本指南,我们使用 Qwen2.5‑Coder‑7B‑Instruct‑GGUF(Q4_K_M 量化)。在 Hugging Face 仓库中,你会找到多种量化版本(Q2–Q8);Q4 在体积和质量之间提供了良好的平衡。
-
下载
Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf文件。 -
将其放置在永久文件夹中,例如:
C:\Users\<your_username>\.llm_models\将
<your_username>替换为你的 Windows 用户名。
运行 llama.cpp 服务器
选择一个不会与 OpenWebUI 冲突的端口(OpenWebUI 使用 8080)。这里我们使用 10000:
llama-server -m "C:\Users\<your_username>\.llm_models\Qwen2.5-Coder-7B-Instruct-Q4_K_M.gguf" --port 10000
保持此终端打开。服务器现在在以下地址提供兼容 OpenAI 的 API:
http://localhost:10000
将 OpenWebUI 连接到 llama.cpp 服务器
-
在浏览器中打开 OpenWebUI(
http://localhost:8080)。 -
前往 Settings → Connections(或 Admin → Connections,取决于版本)。
-
添加一个新的 OpenAI‑compatible 连接:
- Base URL:
http://localhost:10000/v1 - API key: 如无必要可留空,或使用如
local的占位符。
- Base URL:
-
保存连接,选择它作为活动模型,然后发送测试消息。如果模型有回复,则系统正常工作。
故障排除
| 问题 | 建议的解决方案 |
|---|---|
| OpenWebUI 加载但没有模型出现 | 确认 llama-server 正在运行,并且 http://localhost:10000 有响应(可在浏览器中打开或使用 curl 测试)。 |
| 连接失败 | 使用 http://127.0.0.1:10000 替代 http://localhost:10000。检查 Windows 防火墙设置。 |
| 性能慢 | 尝试使用更小的模型或低精度量化(例如 Q4)。如果已增加上下文长度,请将其减小。在 NVIDIA GPU 上,确保使用 CUDA 构建,并且运行时 DLL 与可执行文件在同一文件夹中。 |
您将获得
- 完全本地的聊天堆栈:用于 UI 的 OpenWebUI,用于推理的 llama.cpp,以及来自 Hugging Face 的 GGUF 模型。
- 无需外部 API 调用,无需付费订阅。
- 唯一的限制是 RAM/VRAM 和磁盘空间(模型通常每个都有数 GB 大小)。
下一步
- 试验不同的模型(通用型 vs. 编码型)。
- 尝试其他量化方式(Q2、Q5、Q8),以平衡速度和质量。
- 调整上下文长度以适应你的工作负载。