text-generation-webui 实战评测:十分钟从零跑通本地大模型推理界面,还送 OpenAI 兼容 API
【免费下载链接】textgenOpen-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.项目地址: https://gitcode.com/GitHub_Trending/te/textgen
Text-generation-webui(现更名为 TextGen)是一款本地大模型推理界面:双击即用的一键部署,内置 5 个推理后端,还能直接顶替 OpenAI/Anthropic 的 API 端点。我用便携版和源码全量安装两种方式完整跑了一遍,以下是实测结论和踩过的坑,帮你判断它值不值得装。
先说清它是什么:本地推理 UI,不只是个聊天窗口
官方 README 的第一句话就是它的定位:"A desktop app for local LLMs. Open source, no telemetry."——纯离线、零遥测、不连外网。
和同类工具相比,它的差异点在于"全":
- 对比 Ollama:Ollama 是命令行加极简 API,TextGen 有完整的 Chat / Notebook / Parameters / Model / Training / Session 六个 Tab 界面,支持 5 个后端——llama.cpp、ik_llama.cpp、Transformers、ExLlamaV3、TensorRT-LLM,且切换后端和模型不需要重启服务。
- 对比裸 Transformers 脚本:它自带 OpenAI/Anthropic 兼容 API、工具调用、LoRA 训练 Tab、图像生成 Tab,以及 TTS、语音输入等社区扩展。
- 适合谁:想要图形界面跑本地模型的新手;想把现有 OpenAI 代码"原地"切到本地模型的开发者;想顺手训个 LoRA 的进阶用户。
从零跑通的最小路径:便携版与全量安装两条路
路径一:便携版(最省事,推荐先试)
从 Release 下载对应平台的便携包,解压,双击textgen可执行文件,窗口就打开了。便携版覆盖 CUDA、Vulkan、ROCm 和纯 CPU 四个选项,依赖全部内置,只认 GGUF 模型(即 llama.cpp 格式)。
路径二:源码全量安装
git clone https://gitcode.com/GitHub_Trending/te/textgen然后运行对应系统的启动脚本:Linux 用start_linux.sh,macOS 用start_macos.sh,Windows 用start_windows.bat。按提示选择 GPU 厂商即可,脚本用 Miniforge 在installer_files/里自动建好 Conda 环境,完成后浏览器打开http://127.0.0.1:7860。README 明确说这些脚本不需要管理员权限。
模型放哪?下载 GGUF 文件放进user_data/models/目录,界面会自动检测。多文件的 Transformers/EXL3 模型则放进该目录下的子文件夹——但这类格式必须走全量安装,便携版加载不了。
容易踩的坑:
- 便携版隐藏了训练、图像生成、TTS 扩展等高级功能,README 用
--portable标志明确标注了这一点。想要完整功能就选全量安装,代价是约 10GB 磁盘和一次 PyTorch 下载。 - 想固定启动参数(比如每次自动加载某个模型),不要记在脑子里,写进
user_data/CMD_FLAGS.txt,每行一个参数,下次启动自动生效。
核心功能实战:三个最值得用的功能
1. 聊天 Tab:三种模式 + 角色文件
Chat Tab 文档把模式讲得很清楚:
- instruct 模式:指令遵循,ChatGPT 式问答,模板用 Jinja2 自动格式化;
- chat-instruct / chat 模式:和自定义角色对话。角色就是一个 YAML 文件,放进
user_data/characters/目录,仓库里自带 Example.yaml 可参考,里面定义name、greeting、context三个字段即可。
细节功能比想象中实用:消息可以编辑、可以回退到任意历史版本重新分支(Branch),还能给模型"续写"或"移除上一轮"。
2. 工具调用:开箱 5 个工具,自定义只需一个 .py
在聊天侧边栏勾选工具即可启用,仓库 user_data/tools/ 自带 5 个:web_search(DuckDuckGo 搜索)、fetch_webpage、calculate、get_datetime、roll_dice。模型决定调用时会自动执行,调用过程以折叠面板显示在聊天消息里。
想加自己的工具,按 工具调用教程 写一个单独的.py文件放进user_data/tools/,里面只需要一个描述函数的tool字典和一个execute()函数。参考 get_datetime.py 的例子,十几行就能跑起来。
3. OpenAI/Anthropic 兼容 API:一行 curl 就能验证
启动参数加--api,API 默认监听 5000 端口,提供 Chat、Completions 和 Anthropic Messages 三组端点,支持 SSE 流式输出,也支持工具调用。完整接口文档在http://127.0.0.1:5000/docs,加--api-key可做鉴权,加--nowebui则只跑 API 不启界面。实测把 OpenAI SDK 的 base_url 指向本机 5000 端口后,原有代码无需改动。详见 OpenAI API 文档。
后端怎么选:一张表看清
不同后端的能力差异不小,What Works 文档给了官方支持矩阵:
| 后端 | 加载 LoRA | 训练 LoRA | 视觉能力 | 困惑度评测 |
|---|---|---|---|---|
| llama.cpp | 不支持 | 不支持 | 支持(需 mmproj 文件) | 不支持 |
| Transformers | 支持 | 支持 | 支持 | 支持 |
| ExLlamav3_HF | 不支持 | 不支持 | 不支持 | 支持 |
| ExLlamav3 | 不支持 | 不支持 | 支持 | 不支持 |
| TensorRT-LLM | 不支持 | 不支持 | 不支持 | 不支持 |
结论很简单:只跑 GGUF 选 llama.cpp 系;要 LoRA、训练、评测就选 Transformers。
三个照做就有效的调优建议
- 量化 KV 缓存省显存:启动参数加
--cache-type q8_0(llama.cpp 支持 fp16/q8_0/q4_0 三档)。README 的官方示例就是--model my-model.gguf加--cache-type q8_0两行写进CMD_FLAGS.txt,显存占用明显下降,速度损失很小。 - 自动卸载闲置模型:加
--idle-timeout 30,闲置 30 分钟后自动释放模型,再次使用时自动重载。多模型用户必开。配合--gpu-layers -1(自动分配 GPU 层数)和--fit-target(按 MiB 指定每块 GPU 预留显存余量),基本不用手动算层数。 - 投机解码提速:无草稿模型方案直接加
--spec-type ngram-mod(帮助文档原话标注了"Recommended: ngram-mod"),免费提速;有合适的小模型时可用--model-draft指定草稿模型,提速更明显。
另外,user_data/presets/ 自带三份采样参数预设:Creative.yaml、Deterministic.yaml、Top-P.yaml(top_p 0.95),调参起步可以直接抄。
坑与局限:它做不了什么
⚠️ 下面这些是实测或文档确认的限制,选工具前先看:
- llama.cpp 后端不加载 LoRA。你的工作流如果重度依赖 LoRA,只能上 Transformers 后端,显存要求高得多。
- 训练 Tab 只支持 LoRA 微调,不是全量 fine-tune;且文档明确警告 CPU 上训练"extremely slow",别指望笔记本 CPU 练出什么。
- 100% 离线是把双刃剑:模型权重、视觉 mmproj 文件、LoRA 都得自己下载放进对应目录,它对 Hugging Face 等外部源没有任何内置下载管理。
- 多用户模式是"无隔离"的:
--multi-user适合小型可信团队,聊天历史不保存也不自动加载,别指望它做团队知识沉淀。 - 联网功能依赖外网:web_search 走 DuckDuckGo,纯离线环境里工具调用只剩本地工具可用。
一句话结论
想要"本地版 ChatGPT 界面 + 随时可用的 OpenAI 兼容端点":先装便携版,十分钟能跑;要 LoRA 训练、多后端切换或长期当 API 服务:上全量安装。这套本地推理界面目前属于同类里功能最全的一档——但它终究只是个工具,回答质量上限还是由你选的模型决定的。
【免费下载链接】textgenOpen-source desktop app for local LLMs. Text, vision, tool-calling, OpenAI/Anthropic-compatible API. 100% private.项目地址: https://gitcode.com/GitHub_Trending/te/textgen
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考