一、项目概述
1.1 从 oobabooga 到 TextGen 的演进
TextGen (原名 text-generation-webui,GitHub 曾用名 oobabooga/text-generation-webui)是当前最受欢迎的开源本地大语言模型(LLM)运行平台之一。该项目于2026年4月正式更名为 TextGen ,GitHub 仓库地址变更为 github.com/oobabooga/t...。
| 项目属性 | 详情 |
|---|---|
| 项目名称 | TextGen |
| GitHub Stars | ⭐ 46,900+ |
| GitHub Forks | 🍴 6,000+ |
| 许可证 | AGPL-3.0 |
| 总提交数 | 5,660+ 次 |
| 发布版本 | 111 个(最新 v4.7.3) |
| 官方社区 | Reddit: r/Oobabooga |
1.2 项目起源与资金支持
TextGen 的设计灵感来源于著名的图像生成 Web UI 项目 AUTOMATIC1111/stable-diffusion-webui。2023年8月,著名风险投资机构 Andreessen Horowitz (a16z) 为该项目提供了慷慨的资金支持,进一步推动了项目的发展。此外,项目还获得了 Warp(面向多 AI 代理的编码终端)的赞助。
1.3 核心定位
TextGen 的核心定位是:为零门槛本地运行大模型提供一站式解决方案。无论是研究人员、开发者还是普通用户,都能通过 TextGen 在本地设备上便捷地运行各种开源大语言模型,无需复杂的配置过程。
二、核心功能特性
2.1 多样化的对话模式
TextGen 支持三种主要对话模式,满足不同场景需求:
| 对话模式 | 说明 | 典型应用 |
|---|---|---|
| instruct | 类 ChatGPT 指令模式,适合问答和任务执行 | 翻译、摘要、代码生成 |
| chat-instruct | 聊天+指令混合模式 | 对话式任务处理 |
| chat | 自定义角色对话,使用 Jinja2 模板自动格式化 | 角色扮演、虚拟助手 |
所有对话模式均支持 Jinja2 模板,可灵活自定义提示词格式。
2.2 多模态能力
视觉理解
- 支持图片附件上传,实现视觉理解功能
- 可对图片内容进行问答和分析
文档处理
- 支持 TXT、PDF、DOCX 等多种文档格式上传
- 基于文档内容进行智能问答
2.3 高级对话管理
- 消息编辑:支持修改历史消息内容
- 版本导航:可回溯到任意对话节点
- 分支对话:在任意节点开启新的对话分支
- Notebook 模式:自由形式文本生成,不受对话轮次限制
2.4 工具调用(Tool-calling)
TextGen 提供了强大的工具调用功能,每个工具以单个 .py 文件形式存在,支持:
- Web 搜索 :使用
ddgs库进行实时搜索 - 页面抓取:获取网页内容
- 数学计算:精确数学运算
- MCP 服务器:支持 stdio 模式的 MCP (Model Context Protocol) 服务器连接
💡 最新版本 (v4.6.2+) 新增:工具调用确认功能,提供内联批准/拒绝/始终批准按钮,可在每个工具调用执行前进行确认。
2.5 API 兼容性
TextGen 完全兼容 OpenAI API 和 Anthropic API 格式,可以作为云端 API 的本地替代品:
| API 类型 | 支持端点 | 功能 |
|---|---|---|
| OpenAI | /v1/chat/completions |
聊天完成 |
| OpenAI | /v1/completions |
文本补全 |
| OpenAI | /v1/messages |
消息接口 |
| Anthropic | /v1/messages |
Anthropic 格式 |
通过 --api 参数启动 API 服务,可无缝对接现有应用。
2.6 LoRA 微调训练
- 支持基于多轮对话或原始文本数据集的 LoRA 训练
- 支持断点续训功能
- 可针对特定领域进行模型定制
2.7 图像生成集成
集成 diffusers 模型(如 Z-Image-Turbo),支持:
- 4-bit/8-bit 量化压缩
- 持久化图库存储
- 图像元数据保存
2.8 隐私保护
- 100% 离线运行:零遥测、无外部资源请求
- 无远程更新:无需联网验证
- 完全私有:数据不出本地设备
三、技术架构
3.1 项目结构
bash
textgen/
├── .github/ # CI/CD 配置
├── css/ # 样式文件
├── desktop/ # 桌面应用相关
├── docker/ # Docker 配置(nvidia/amd/intel/cpu)
├── docs/ # 项目文档
├── extensions/ # 扩展插件目录
├── js/ # JavaScript 文件
├── modules/ # 核心模块
├── requirements/ # 依赖文件(portable/full)
├── user_data/ # 用户数据(模型、配置等)
├── server.py # 主服务入口
├── one_click.py # 一键安装脚本
└── download-model.py # 模型下载工具
3.2 技术栈分析
| 技术类别 | 占比 | 说明 |
|---|---|---|
| Python | 86.1% | 核心开发语言 |
| CSS | 6.5% | 界面样式 |
| JavaScript | 5.6% | 前端交互 |
| Shell | 0.7% | 脚本配置 |
| 其他 | 1.1% | Batchfile、Dockerfile 等 |
3.3 核心技术组件
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 前端框架 | Gradio | 交互式 Web UI |
| 推理后端 | llama.cpp / ExLlamaV3 / Transformers / TensorRT-LLM | 多引擎支持 |
| 量化方案 | bitsandbytes、GGUF | 4-bit/8-bit 量化 |
| API 兼容 | OpenAI API / Anthropic API | 无缝对接现有应用 |
| 模型格式 | GGUF、Safetensors、EXL3 | 主流格式全覆盖 |
3.4 多后端支持
TextGen 支持多种推理引擎,可根据硬件条件自由选择:
| 推理后端 | 特点 | 适用场景 |
|---|---|---|
| llama.cpp | 高效、跨平台、支持 GGUF | 通用推荐 |
| ik_llama.cpp | llama.cpp 分支,支持新量化类型 | 高级量化需求 |
| Transformers | 官方 Hugging Face 实现 | 研究实验 |
| ExLlamaV3 | 高性能推理 | 大模型场景 |
| TensorRT-LLM | NVIDIA 官方优化 | 专业部署 |
⚠️ 重要提示:无需重启即可切换后端和模型,极大提升了开发效率。
四、安装与部署
4.1 安装方式对比
| 安装方式 | 难度 | 速度 | 功能完整性 | 适用用户 |
|---|---|---|---|---|
| 便携版 | ⭐ | 🚀 1分钟 | ⭐⭐⭐⭐ | 普通用户 |
| venv 安装 | ⭐⭐ | 🚀 5分钟 | ⭐⭐⭐⭐⭐ | 开发者 |
| 一键安装器 | ⭐⭐ | 🐢 10-30分钟 | ⭐⭐⭐⭐⭐ | 全功能需求 |
| Conda | ⭐⭐⭐ | 🐢 15分钟 | ⭐⭐⭐⭐⭐ | 高级用户 |
| Docker | ⭐⭐ | 🚀 快速 | ⭐⭐⭐⭐ | 容器化部署 |
4.2 便携版(推荐新手)
最快上手方式,零配置:
bash
# 1. 下载对应版本
# 地址:https://github.com/oobabooga/textgen/releases
# 2. 解压后双击 textgen 即可运行
支持平台:Linux、Windows、macOS 支持加速:CUDA、Vulkan、ROCm、纯 CPU
4.3 venv 手动安装
bash
# 克隆仓库
git clone https://github.com/oobabooga/textgen
cd textgen
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # macOS/Linux
# venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements/portable/requirements.txt --upgrade
# 启动服务
python server.py --portable --api --auto-launch
4.4 一键安装器(推荐)
bash
# 克隆仓库
git clone https://github.com/oobabooga/textgen
# 运行对应系统脚本
# Windows
start_windows.bat
# Linux
./start_linux.sh
# macOS
./start_macos.sh
安装完成后访问:http://127.0.0.1:7860
4.5 Conda 完整安装
bash
# 安装 Miniforge
curl -sL "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" > "Miniforge3.sh"
bash Miniforge3.sh
# 创建环境
conda create -n textgen python=3.13
conda activate textgen
# 安装 PyTorch(按硬件选择)
pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cu128
# 安装项目
git clone https://github.com/oobabooga/textgen
cd textgen
pip install -r requirements/full/<对应requirements文件>
4.6 Docker 部署
bash
# NVIDIA GPU 示例
ln -s docker/{nvidia/Dockerfile,nvidia/docker-compose.yml,.dockerignore} .
cp docker/.env.example .env
mkdir -p user_data/logs user_data/cache
docker compose up --build
五、模型管理
5.1 支持的模型格式
| 格式 | 说明 | 推荐后端 |
|---|---|---|
| GGUF | llama.cpp 专用格式,高压缩比 | llama.cpp |
| Safetensors | 安全高效的 PyTorch 格式 | Transformers |
| EXL3 | ExLlamaV3 专用格式 | ExLlamaV3 |
5.2 模型下载与放置
GGUF 模型(便携版)
bash
1. 从 Hugging Face 下载 GGUF 文件
https://huggingface.co/models?pipeline_tag=text-generation&sort=downloads&search=gguf
2. 将文件放入 user_data/models/ 文件夹
3. UI 自动检测并加载
多文件模型(Transformers/EXL3)
arduino
textgen/
└── user_data/
└── models/
└── Qwen_Qwen3-8B/
├── config.json
├── model-00001-of-00004.safetensors
├── tokenizer.json
└── ...
5.3 VRAM 估算工具
使用 GGUF Memory Calculator 估算所需显存。
推荐参考:LocalBench 获取各量化版本性能对比。
六、命令行参数详解
6.1 基础设置
| 参数 | 说明 | 示例 |
|---|---|---|
--model |
指定模型路径 | --model user_data/models/Qwen3-8B |
--multi-user |
多用户模式 | |
--extensions |
启用的扩展 | --extensions sd_api_pictures |
--verbose |
详细输出 | |
--idle-timeout |
空闲超时(秒) | --idle-timeout 600 |
6.2 API 配置
| 参数 | 说明 | 示例 |
|---|---|---|
--api |
启用 API | |
--api-port |
API 端口 | --api-port 5000 |
--api-key |
API 密钥 | --api-key your_key |
--nowebui |
仅 API 模式(无界面) | |
--public-api |
公共 API |
6.3 llama.cpp 参数
| 参数 | 说明 | 示例 |
|---|---|---|
--gpu-layers |
GPU 层数 | --gpu-layers 99 |
--ctx-size |
上下文大小 | --ctx-size 4096 |
--tensor-split |
张量分割策略 | --tensor-split 0.6,0.4 |
--parallel |
并行数 | --parallel 4 |
--cache-type |
缓存类型 | --cache-type q8_0 |
6.4 Transformers 参数
| 参数 | 说明 |
|---|---|
--load-in-8bit |
8-bit 量化加载 |
--load-in-4bit |
4-bit 量化加载 |
--bf16 |
使用 BF16 精度 |
--trust-remote-code |
信任远程代码 |
6.5 推理优化参数
| 参数 | 说明 | 说明 |
|---|---|---|
--model-draft |
推测解码草案模型 | 加速生成 |
--spec-type |
推测解码类型 | greedy/sampling |
--draft-max |
最大推测长度 | |
--split-mode tensor |
张量并行模式 | 多 GPU 加速 60%+ |
七、扩展生态
7.1 内置扩展
| 扩展名称 | 功能描述 |
|---|---|
| character_bias | 角色偏差调整 |
| coqui_tts | Coqui 文本转语音 |
| gallery | 图片图库管理 |
| google_translate | Google 翻译集成 |
| long_replies | 长回复处理 |
| ngrok | 内网穿透支持 |
| perplexity_colors | Perplexity 配色方案 |
| sd_api_pictures | Stable Diffusion 图片生成 |
| send_pictures | 图片发送功能 |
| silero_tts | Silero 文本转语音 |
| superbooga | 知识增强扩展 |
| superboogav2 | 知识增强扩展 v2 |
| whisper_stt | Whisper 语音转文字 |
7.2 社区扩展
TextGen 拥有活跃的社区生态,社区成员贡献了大量扩展插件,涵盖:
- TTS(语音合成)
- 语音输入
- 翻译功能
- 更多图像生成能力
7.3 MCP 服务器集成
v4.6.2+ 版本支持 MCP (Model Context Protocol) 服务器,可通过 user_data/mcp.json 配置文件连接 stdio 模式的 MCP 服务器。
八、最新版本更新(2026年)
8.1 v4.7.3(2026年5月3日)⭐ 最新版本
重大更新
| 功能 | 说明 |
|---|---|
| 桌面应用 | 便携版捆绑 Electron,原生窗口运行 |
| UI 大改版 | 默认字体改为 Inter,Lucide SVG 图标,全新聊天输入框 |
| 张量并行 | 新增 --split-mode tensor 标志,多 GPU 加速 60%+ |
| 搜索工具 | 使用 ddgs 库替代 DuckDuckGo HTML,更抗反爬 |
| 模板支持 | 支持独立 .jinja/.jinja2 指令模板文件 |
Bug 修复
- 修复工具调用批准期间停止按钮被忽略的问题
- 修复 ExLlamaV3 后端并发 API 请求竞态条件
- 修复扩展设置无法保存的问题(#7525)
依赖更新
- llama.cpp 更新至最新版本
- ik_llama.cpp 更新至最新版本
- transformers 更新至 5.6
8.2 v4.6.2(2026年4月23日)
重大更新
| 功能 | 说明 |
|---|---|
| 工具调用确认 | 内联批准/拒绝/始终批准按钮 |
| MCP 服务器 | 支持 stdio 模式 MCP 服务器 |
| Thinking 参数 | 新增 --preserve-thinking 参数 |
| 侧边栏改进 | 独立切换并保持状态 |
安全修复
- 修复 URL 获取中的 SSRF 漏洞
8.3 v4.5.2(2026年4月15日)
重大更新
| 功能 | 说明 |
|---|---|
| 项目更名 | 从 text-generation-webui 正式更名为 TextGen |
| 对数概率显示 | 改进 logits 显示 |
| UI 改进 | 浅色模式引用文本使用天蓝色 |
九、使用场景
9.1 典型应用场景
| 场景 | 说明 | 推荐配置 |
|---|---|---|
| 本地开发调试 | 无需调用云端 API,本地调试 LLM 应用 | 便携版 + llama.cpp |
| 隐私敏感场景 | 医疗、法律、金融等敏感数据处理 | 完全离线,无遥测 |
| 模型研究实验 | 测试不同模型、后端、量化方案 | Transformers / ExLlamaV3 |
| API 服务部署 | 自建 OpenAI 兼容 API | --api + --nowebui |
| LoRA 训练 | 定制化模型微调 | 一键安装器完整版 |
| 多模态应用 | 视觉理解 + 图像生成 | 集成 SD + 多模态模型 |
9.2 推荐硬件配置
| 模型规模 | 量化 | 最低显存 | 推荐显存 |
|---|---|---|---|
| 7B | Q4_K_M | 6GB | 8GB |
| 13B | Q4_K_M | 10GB | 16GB |
| 33B | Q4_K_M | 24GB | 32GB |
| 70B | Q4_K_M | 48GB | 80GB |
十、项目优势总结
10.1 核心优势
| 优势 | 说明 |
|---|---|
| ✅ 零门槛 | 便携版一键启动,无需配置环境 |
| ✅ 多后端 | 支持 llama.cpp/ExLlamaV3/Transformers/TensorRT-LLM |
| ✅ API 兼容 | 完全兼容 OpenAI/Anthropic API,即插即用 |
| ✅ 完全私有 | 100% 本地运行,零遥测,保护隐私 |
| ✅ 功能完整 | 聊天、视觉、训练、图像生成一体化 |
| ✅ 活跃社区 | 46.9k Stars,6k Forks,持续迭代 |
10.2 竞品对比
| 特性 | TextGen | Ollama | LM Studio |
|---|---|---|---|
| Star 数量 | 46.9k | 30k+ | 10k+ |
| 扩展生态 | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| API 兼容性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| LoRA 训练 | ✅ | ❌ | ❌ |
| 图像生成 | ✅ | ❌ | ❌ |
| 桌面应用 | ✅ | ❌ | ✅ |
结语
TextGen 作为开源本地大模型运行平台的标杆项目,凭借其零门槛的便携部署 、多后端灵活切换 、完整的 API 兼容性 以及丰富的扩展生态,已经成为 AI 研究者和开发者不可或缺的工具。
随着 v4.7.3 版本的发布,特别是桌面应用集成 和张量并行优化的加入,TextGen 在易用性和性能方面又迈上了新的台阶。无论是想要在本地体验大模型能力的普通用户,还是需要构建私有化 AI 应用的开发者,TextGen 都是值得首选的解决方案。
立即体验 :访问 github.com/oobabooga/t... 下载最新版本,开始你的本地大模型之旅!
本文首发于 CSDN,转载需注明出处。