Text Generation Web UI 本地部署与推理后端选型实战
【免费下载链接】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 Web UI 本地部署解决的是一个很具体的问题:把本地大模型变成浏览器里能聊天的界面,再变成内部工具能直接调的 OpenAI 兼容 API。读完全文你能独立跑通对话界面、按显存选定推理后端、把模型塞进 user_data/models/ 调好参数,并用一条 curl 把生成结果接进现有脚本。
5 条命令跑通本地 LLM 对话界面
拿到仓库后,最省事的路径是便携版:
git clone https://gitcode.com/GitHub_Trending/te/text-generation-webui cd text-generation-webui ./start_linux.shWindows 双击start_windows.bat,macOS 执行./start_macos.sh。脚本会用 Miniforge 在installer_files/里建好环境并装依赖,装完打开http://127.0.0.1:7860就是主界面。日常启动参数写在user_data/CMD_FLAGS.txt,每行一个,重启直接复用。
手动装 venv 的路径
便携版不适合的场景(已有自己的 Python 环境、服务器部署)可以手动装:
python -m venv venv && source venv/bin/activate pip install -r requirements/portable/requirements.txt python server.py --portable --api --auto-launch按硬件挑 requirements/portable/ 里对应的requirements_*.txt。全量安装(ExLlamaV3、训练、图像生成)约 10GB 磁盘,另需单独装 PyTorch。
按显存选推理后端
项目内置 5 个后端,在 modules/loaders.py 里注册,启动参数--loader可以强制指定,不传就自动检测:
- llama.cpp:便携版默认,吃 GGUF 单文件,
--gpu-layers -1自动把层全塞进显存,塞不下再手动降层数。 - Transformers:兼容 HF 多文件模型,显存不够可以
--cpu或--load-in-8bit。 - ExLlamaV3 / TensorRT-LLM / ik_llama.cpp:显存充裕时的长文本和高吞吐路线,需要全量安装。
多卡机器在 llama.cpp 下用--tensor-split 60,40把模型切到两张卡;--parallel N开 N 个并发请求槽位,上下文按槽位均分,例如 4 个 8192 上下文的并发就把--ctx-size设 32768。
把自己的模型和角色塞进来
GGUF 单文件直接丢进user_data/models/,界面自动识别,不用改任何配置。HF 多文件模型(safetensors 那套)放进user_data/models/下的子文件夹,每个模型一个文件夹。
想让某模型开机就加载、上下文固定 8192,往user_data/CMD_FLAGS.txt写两行:--model 你的模型.gguf和--ctx-size 8192。角色人设是user_data/characters/下的 YAML 文件,内置Assistant和Example两个,加新文件就是新角色,对话模板的 Jinja2 变量会自动套用。
三个采样参数管住生成质量
生成质量的旋钮很多,先用这三个就够:
temperature:随机性主开关,0 为纯贪心,越高越发散。top_p:候选 token 累计概率上限,0.95 是常见起点。min_p:相对最可能 token 的阈值过滤,0.02 起步。
复读严重时再加 repetition 类惩罚,但一次只动一个参数,看效果再动下一个。参数组合存成 YAML 放进user_data/presets/,内置几个预设都是社区盲测投票选出来的;界面预设菜单里的 🎲 按钮会随机拼一个可解读组合,生成质量卡死时点它救场。
把 OpenAI 兼容 API 暴露给内部工具
启动参数加--api,5000 端口就多出 OpenAI 兼容端点,/v1/chat/completions支持流式和 tool calls:
curl http://127.0.0.1:5000/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"messages":[{"role":"user","content":"你好"}],"top_p":0.95,"top_k":20}'第三方应用把OPENAI_API_BASE指向http://127.0.0.1:5000/v1加一个OPENAI_API_KEY就能直接切过来,官方 Python/Node 客户端也适用。完整接口列表见http://127.0.0.1:5000/docs。加--api-key做鉴权,加--listen暴露到局域网,--nowebui让服务只跑 API 不启界面。
工具调用与批量任务
Qwen、Mistral、GPT-OSS 这类模型走/v1/chat/completions的tools参数即可做函数调用,返回finish_reason: "tool_calls"后执行工具、把结果作为role: "tool"消息回传,直到stop。每个工具就是一个.py文件,默认工具集(网页搜索、取时间、骰子)在 user_data/tools/,照着写新工具即可。
批量跑文案就用 Python 客户端并发调 API,llama.cpp 配--parallel开槽位。需要模型贴合业务语料时,Training 页可以做 LoRA 微调,数据集样例在user_data/training/datasets/。
先跑一遍上面的最小对话链路确认环境没问题,再决定上哪个后端、把常用参数组合存成预设。最后把--api --listen加进CMD_FLAGS.txt,把http://你的内网IP:5000/v1发给同事试一条真实请求。
【免费下载链接】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),仅供参考