Chapter 08

Open WebUI 与图形界面

命令行之外,生态中有丰富的图形界面工具让本地大模型更易用。从 Open WebUI 的类 ChatGPT 体验,到 Continue.dev 的 VS Code 代码助手,本章一网打尽主流 GUI 工具。

Open WebUI — 本地版 ChatGPT

Open WebUI 是目前最流行的 Ollama 图形前端,界面与 ChatGPT 高度相似,功能完整:多模型切换、对话历史、Markdown 渲染、代码高亮、文件上传、图片理解等。

Open WebUI 核心功能
· 多模型并排对比(同一问题同时问多个模型)
· 完整对话历史(本地 SQLite 存储)
· 文件上传与 RAG(内置文档问答)
· 多用户系统(适合团队部署)
· 自定义模型参数(温度、上下文等)
· Markdown / LaTeX / 代码块渲染
· 语音输入输出(TTS/STT)

方式一:pip 安装(最简单)

# 安装 Open WebUI
pip install open-webui

# 启动(首次启动会自动初始化数据库)
open-webui serve

# 访问 http://localhost:8080
# 首次访问需注册管理员账号(本地账号,无需真实邮箱)

方式二:Docker Compose(推荐,含完整 Ollama)

# docker-compose.yml — 一键启动 Ollama + Open WebUI
version: '3.8'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    volumes:
      - ollama_data:/root/.ollama
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]  # 有 NVIDIA GPU 时启用

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434  # 指向同网络的 Ollama 服务
    volumes:
      - open_webui_data:/app/backend/data
    depends_on:
      - ollama

volumes:
  ollama_data:
  open_webui_data:
# 启动所有服务
docker compose up -d

# 查看运行状态
docker compose ps

# 在 Open WebUI 容器内下载模型
docker exec -it ollama ollama pull llama3.2
docker exec -it ollama ollama pull qwen2.5:7b

# 访问 http://localhost:8080
# 停止服务
docker compose down

AnythingLLM — 本地企业知识库

AnythingLLM 是功能更完整的企业级本地知识库系统,内置文档管理、多工作区、团队权限控制:

# 方式一:Docker 部署(推荐)
docker run -d \
  --name anythingllm \
  -p 3001:3001 \
  -v ~/anythingllm:/app/server/storage \
  -e OLLAMA_BASE_PATH=http://host-gateway:11434 \
  --add-host host-gateway:host-gateway \
  mintplexlabs/anythingllm

# 访问 http://localhost:3001

# 方式二:桌面版(Windows/macOS/Linux 均有安装包)
# 访问 https://anythingllm.com/desktop 下载

# AnythingLLM 特色功能:
# · 工作区(Workspace)隔离不同知识库
# · 支持 PDF/Word/Excel/网页 文档
# · 内置 Agent 模式(可调用工具)
# · API 接口(可集成到自己的应用)

Continue.dev — VS Code / JetBrains 代码助手

Continue.dev 是一个开源 AI 代码助手插件,可在 VS Code 中使用本地 Ollama 模型进行代码补全、注释生成、代码解释等:

# 1. 在 VS Code 中安装 Continue 扩展
# 搜索 "Continue - Codestral, Claude, and more"

# 2. 配置 Continue 使用 Ollama(~/.continue/config.json)
{
  "models": [
    {
      "title": "Qwen 2.5 Coder (本地)",
      "provider": "ollama",
      "model": "qwen2.5-coder:7b"
    },
    {
      "title": "DeepSeek Coder (本地)",
      "provider": "ollama",
      "model": "deepseek-coder-v2:16b"
    }
  ],
  "tabAutocompleteModel": {
    "title": "代码自动补全",
    "provider": "ollama",
    "model": "qwen2.5-coder:1.5b"  // 补全用小模型,速度更快
  },
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text"
  },
  "contextProviders": [
    {"name": "code"},        // 引用代码块
    {"name": "docs"},        // 引用文档
    {"name": "terminal"},    // 引用终端输出
    {"name": "problems"}     // 引用 lint 错误
  ]
}

桌面客户端横向对比

工具类型特色适合谁
Open WebUIWeb 应用类 ChatGPT 完整体验,多用户支持团队/个人日常对话
AnythingLLMWeb/桌面企业知识库,文档管理,工作区隔离企业内网知识库
Continue.devIDE 插件代码补全、代码解释、单元测试生成开发者代码辅助
Chatbox桌面应用轻量,支持多 API,快速配置日常对话用户
LM Studio桌面应用内置模型下载,硬件信息显示模型探索者
Jan桌面应用开源,完全离线,模型管理可视化隐私优先用户

OpenAI API 兼容配置

Ollama 提供了完整的 OpenAI 格式 API 兼容层,让现有的 ChatGPT 应用无缝切换:

# ── 使用 OpenAI SDK 调用 Ollama ───────────────────────
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # 随意填写
)

# 列出可用模型(兼容 /v1/models)
models = client.models.list()
for m in models.data:
    print(m.id)

# 对话(兼容 /v1/chat/completions)
response = client.chat.completions.create(
    model="qwen2.5:7b",
    messages=[{"role": "user", "content": "你好"}]
)
print(response.choices[0].message.content)

# 流式输出(兼容 stream=True)
with client.chat.completions.create(
    model="llama3.2",
    messages=[{"role": "user", "content": "写一首短诗"}],
    stream=True
) as stream:
    for chunk in stream:
        if chunk.choices[0].delta.content:
            print(chunk.choices[0].delta.content, end="", flush=True)

# 嵌入(兼容 /v1/embeddings)
emb_response = client.embeddings.create(
    model="nomic-embed-text",
    input="Hello world"
)
print(f"向量维度: {len(emb_response.data[0].embedding)}")
为现有项目切换到 Ollama 的最小步骤 如果你的项目已使用 OpenAI SDK,切换到 Ollama 只需两步:1. 修改 base_url="http://localhost:11434/v1";2. 修改 api_key="ollama"(任意字符串);3. 将 model 名称改为本地安装的模型名(如 gpt-4qwen2.5:7b)。其余代码不需要任何修改。
本章小结 图形界面生态丰富:Open WebUI 是最接近 ChatGPT 的 Web 界面,一行 pip 命令即可启动;Continue.dev 让 VS Code 变成 AI 代码助手;AnythingLLM 适合企业知识库场景。所有工具都通过 Ollama 的 OpenAI 兼容 API 连接,/v1/ 路径完全兼容 OpenAI SDK。下一章深入性能优化,让本地模型跑得更快。