oobabooga/textgen · 上手攻略
- 仓库:oobabooga/textgen
- 链接:https://github.com/oobabooga/textgen
- 分类:llm · local-ai · desktop-app
- 作者:Tom
- 更新:2026-08-17
这是什么
textgen(全称 oobabooga/text-generation-webui)是一个开源本地大模型桌面应用,支持文本生成、视觉理解(多模态)、工具调用、网页搜索、LoRA 微调,以及 OpenAI / Anthropic 兼容 API。口号是「100% 离线、零遥测」——不需要任何外部服务,所有模型和数据都在你自己的机器上。
它是原本大名鼎鼎的「text-generation-webui」的延续,由 oobabooga 维护,功能极为全面。最新版本(v4.x)引入了 Electron 桌面封装、MTP(Multi-Token Prediction)投机解码、多模态 mmproj 自动检测,以及 DGX Spark 支持。
解决什么问题
- 想在本地跑大模型,但不想写代码、不想搭 API 服务
- 需要多模态(视觉)能力,同时跑文本对话
- 希望用自己的 LoRA 做风格微调或指令微调
- 需要一个本地 OpenAI API 兼容端点,让现有应用(Cursor、Continue、Open Interpreter)无缝切换到本地模型
- 对隐私要求极高,数据不能离开本机
快速安装
方式一:桌面便携版(推荐新手)
直接下载解压,双击即用,无需配置。
# 1. 前往 releases 页面下载对应系统的版本
# https://github.com/oobabooga/textgen/releases
# 选择你的 OS + 硬件加速类型(CUDA / Vulkan / ROCm / CPU)
# 2. 解压后运行
# Windows: 双击 textgen.exe
# Linux/macOS: 运行 start_linux.sh / start_macos.sh
# 3. 打开浏览器访问 http://127.0.0.1:7860
便携版包含所有依赖,无需 Python 环境。适合只想快速上手、不想折腾配置的用户。
方式二:从源码安装(支持更多后端)
需要 Python 3.9+,推荐 conda/miniforge 管理环境。
# 克隆仓库
git clone https://github.com/oobabooga/textgen
cd textgen
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 安装依赖(选择对应硬件的 requirements 文件)
pip install -r requirements/portable/requirements.txt --upgrade
# 启动(--portable 模式 + API + 自动打开浏览器)
python server.py --portable --api --auto-launch
# 访问 http://127.0.0.1:7860
方式三:Miniforge 完整安装(需要额外后端)
支持 ExLlamaV3、Transformers、TensorRT-LLM 等后端,以及 LoRA 训练功能:
# 安装 Miniforge
curl -sL "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" > Miniforge3.sh
bash Miniforge3.sh
# 创建环境并安装 PyTorch
conda create -n textgen python=3.13
conda activate textgen
# NVIDIA GPU(示例 CUDA 12.8,建议查官方最新)
pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cu128
# AMD GPU(Linux)
pip3 install torch --index-url https://repo.radeon.com/rocm/manylinux/rocm/
# CPU only
pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cpu
# 启动脚本(选择 GPU 类型后会提示安装对应依赖)
./start_linux.sh
⚠️ 建议安装前查看官方 GPU 对照表;Python 3.13 支持情况需以实际测试为准。
模型下载
GGUF 格式模型放到 user_data/models/ 目录,UI 会自动识别:
# 示例:用 huggingface-cli 下载 Qwen3-8B GGUF
huggingface-cli download Qwen/Qwen3-8B-Q4_K_M.gguf \
--local-dir user_data/models/Qwen3-8B-Q4_K_M
# 或手动从 https://huggingface.co/models?pipeline_tag=text-generation&sort=downloads&search=gguf 下载
多文件模型(如 Transformers 格式、EXL3)放在子目录:
user_data/models/Qwen_Qwen3-8B/
├── config.json
├── model-00001-of-00004.safetensors
├── tokenizer_config.json
└── tokenizer.json
核心用法
基础对话
- 打开浏览器
http://127.0.0.1:7860 - 在「Model」标签页加载模型(首次下载后会自动出现)
- 选择模式:Instruct(指令模式,类似 ChatGPT)、Chat-instruct / Chat(角色扮演对话)
- 直接输入对话
开启 API(OpenAI 兼容)
启动时加 --api 参数,或在 user_data/CMD_FLAGS.txt 中写入 --api:
# 启动命令加入 --api
python server.py --portable --api --listen
⚠️
--listen会开放局域网访问,注意安全;默认仅 localhost 可访问。
API 端点示例:
# Chat 接口(OpenAI Chat Completions 兼容)
curl http://localhost:7860/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B-Q4_K_M",
"messages": [{"role": "user", "content": "你好,解释一下量子纠缠"}]
}'
# Completions 接口
curl http://localhost:7860/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3-8B-Q4_K_M",
"prompt": "量子纠缠是指"
}'
工具调用(Tool Calling)
工具调用让模型在对话中执行函数(如网页搜索、计算、文件操作)。每个工具是一个 .py 文件,也支持 MCP 服务器:
# 示例:定义一个简单工具(保存为 user_data/tools/search.py)
"""
from typing import List
def search(query: str) -> List[str]:
\"\"\"执行网页搜索\"\"\"
import requests
resp = requests.get(f"https://api.example.com/search?q={query}")
return resp.json()["results"]
"""
# 在 UI 的参数面板中开启 "Tool calling"
LoRA 微调训练
# 1. 在 UI 的「Training」标签页准备数据集(JSONL 格式)
# 2. 配置参数:学习率、batch size、epoch 数
# 3. 点击开始训练,进度保存到 user_data/training/
# 4. 训练完成后在 Model 标签页加载:基础模型 + LoRA
# 中断后恢复训练:选择同一个输出目录即可
多模态(Vision)
- 在聊天输入框点击「附件」图标,上传图片
- 模型会自动识别图片内容(需要多模态模型,如
llava系列 gguf 或带有 mmproj 的模型) - 可以在同一个对话中混合文本和图片
⚠️ mmproj 文件(如
mmproj-*.gguf)需要放在模型文件夹中,v4.x 会自动检测并显示在 mmproj 下拉菜单。
典型适用场景
| 场景 | 为什么选 textgen |
|---|---|
| 本地跑开源 LLM(Llama、Qwen、Mistral 等) | 界面友好,一键加载 GGUF |
| 给现有工具接本地模型 | OpenAI API 兼容,现有应用无需改代码 |
| LoRA 微调实验 | 内置训练界面,无需写训练脚本 |
| 多模态对话(图片理解) | 支持 LLaVA 等视觉模型 |
| 隐私敏感场景 | 完全离线,零数据外传 |
| MCP 工具生态 | 支持 MCP 服务器扩展 |
坑与注意
- Python 3.13 兼容性:部分依赖尚未完全适配 Python 3.13,遇到 import 错误建议降到 Python 3.11/3.12。
- 显存估算:不同量化版本显存占用差异极大,使用 官方 VRAM Calculator 预先估算。Q4_K_M 通常 8B 模型需要 ~6 GB,Q8 需要 ~10 GB。
- macOS GPU 支持:Apple Silicon Mac 用的是 Metal(Vulkan 兼容),不是 CUDA,需选
Vulkan版或CPU版;M 系列芯片推荐先用 portable Vulkan 版测试。 - AMD GPU on Windows:textgen 的 ROCm 支持主要面向 Linux,Windows AMD 卡兼容性问题较多,建议用 WSL2 或 Linux。
- API 安全:默认
--api仅监听 localhost;加--listen后局域网可访问,但无认证——生产环境务必配防火墙或加一层反向代理认证。 - LoRA 训练显存:训练比推理需要更多显存,8B 模型建议 12 GB 以上显存;便携版不含训练依赖,需要完整安装。
- mmproj 多模态文件:部分模型(如 CogVLM)的 mmproj 文件必须与主模型放同一目录,且文件名需匹配,v4.x 之前的版本需要手动选择。
与同类对比
| 方案 | 界面 | API 兼容 | 工具调用 | 微调 | 多模态 |
|---|---|---|---|---|---|
| textgen | ✅ Gradio/Electron | ✅ OpenAI | ✅ | ✅ 内置 | ✅ |
| Ollama | ✅ 官方 CLI+API | ✅ OpenAI | ❌ | ❌ | ⚠️ 部分 |
| LM Studio | ✅ 桌面应用 | ✅ OpenAI | ❌ | ❌ | ⚠️ 部分 |
| Jan | ✅ 桌面应用 | ✅ OpenAI | ⚠️ 插件 | ❌ | ⚠️ 部分 |
| vLLM (server) | ❌ 无 UI | ✅ OpenAI | ❌ | ❌ | ⚠️ 部分 |
核心差异:textgen 是这些方案中界面最丰富、功能最全的选择——同时具备训练、工具调用、多模态、MCP 支持,但相应地配置复杂度也最高。Ollama 和 LM Studio 更适合只想「下载模型、聊天」的用户;如果你需要深度定制(LoRA 训练、工具调用开发、自定义后端),textgen 更合适。
一句话结论
如果你需要一款功能最全面的本地大模型桌面工具,同时追求 OpenAI API 兼容性、LoRA 训练、工具调用和视觉理解,textgen 是开源社区最成熟的选择——但准备好花一点时间理解它的参数体系,回报是几乎无限的扩展能力。