
TextGen(原 Text Generation WebUI):本地大模型桌面应用,多后端 + OpenAI 兼容 API 的离线 WebUI|部署与使用全指南
项目仓库: https://github.com/oobabooga/text-generation-webui(已更名为 TextGen,当前规范仓库 oobabooga/textgen,旧路径自动跳转)
开源协议:AGPL-3.0 · 主要语言:Python ·
交付形态:跨平台便携桌面包(CUDA / Vulkan / ROCm / CPU-only)、Gradio
浏览器 Web UI、本地 API 服务 · Web UI 默认端口 7860,API
默认端口 5000 · 模型目录 user_data/models ·
官方文档:GitHub
Wiki
非官方声明:TextGen 由开发者 oobabooga 独立维护,与 OpenAI、Anthropic、Google、Meta、Hugging Face、NVIDIA、AMD、llama.cpp、Transformers 等公司与开源项目不存在隶属或授权关系;文中模型、后端与硬件名称仅用于说明兼容目标。项目本体不打包模型权重,模型许可证由对应发布方决定。品牌已由 Text Generation WebUI 更名为 TextGen,本文沿用历史称谓便于检索,界面与命令以当前安装版本为准。
1 项目简介
TextGen 是一款面向本地大模型的桌面应用与 Web UI:把下载到本机的 GGUF、Transformers、EXL3 等格式模型接入统一界面,完成对话、指令跟随、自由文本续写、视觉理解、工具调用、LoRA 微调与图像生成;同时对外提供 OpenAI / Anthropic 兼容的本地 API。项目强调 100% 离线运行、零遥测、不加载外部资源、不发起远程更新请求。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | TextGen(旧名 Text Generation WebUI,社区常称 oobabooga) |
| 旧仓库地址 | github.com/oobabooga/text-generation-webui(重定向) |
| 当前规范仓库 | github.com/oobabooga/textgen |
| 项目定位 | 本地大模型桌面应用:多后端推理、Chat / Instruct / Notebook 界面、工具调用与本地 API |
| 开源协议 | GNU AGPL-3.0(网络服务场景下,修改版本须向访问者提供对应源码) |
| 主要语言 | Python |
| 交付形态 | Releases 便携包(Linux / Windows / macOS,CUDA / Vulkan / ROCm / CPU-only,依赖内置);Gradio 浏览器界面;本地 API 服务 |
| 推理后端 | llama.cpp、ik_llama.cpp、Transformers、ExLlamaV3、TensorRT-LLM,可不重启切换后端与模型 |
| Web UI 端口 | 7860(Gradio 默认,--listen-port
修改,--listen-host 绑定地址) |
| API 端口 | 5000(--api-port 修改),需先加
--api 开启 |
| 模型目录 | user_data/models;GGUF 单文件直接放入,多文件
Transformers / EXL3 放入子文件夹 |
| 运行模式 | instruct、chat-instruct、chat;提示词由
Jinja2 模板自动格式化 |
| 官方文档 | github.com/oobabooga/textgen/wiki |
1.2 适用场景
- 在本机或内网运行开源大模型,对话与续写数据不离开自有环境,替代需要上传上下文的云端助手。
- 同一块显卡上对比不同模型、量化等级、采样参数与后端表现,调试提示词模板与角色设定。
- 通过 OpenAI / Anthropic 兼容 API 把本地模型接入其他脚本、聊天客户端、自动化工作流或 Agent 框架。
- 使用自定义工具函数(单文件
.py)与 MCP 服务器扩展模型能力,例如网页搜索、页面抓取、数学计算。 - 在多轮聊天或原始文本数据集上微调 LoRA,支持中断后续训;使用 diffusers 模型在独立标签页生成图片。
- 开发者基于扩展机制接入 TTS、语音输入、翻译等社区扩展。
1.3 能力边界(官方口径)
- 官方 README 自述定位为 “A desktop app for local LLMs. Open source, no telemetry. Text, vision, tool-calling, web search. UI + API.”;能力覆盖文本、视觉、工具调用与网页搜索。
- 模型与权重不随项目分发:GGUF 需从 Hugging Face 等来源下载放入
user_data/models;多文件格式模型需要完整安装版,便携包仅覆盖 GGUF(llama.cpp)路线。 - 便携桌面包以快速上手为目标,训练、图像生成、ExLlamaV3 / Transformers 等额外后端与部分扩展需要完整安装(约 10GB 磁盘并下载 PyTorch)。
- 本地推理速度与质量取决于显卡显存、内存、量化等级与模型规模;官方提供 LocalBench 推荐量化与 GGUF 显存计算器辅助选型,本文不臆造具体显存数字。
- 项目不内置联网搜索结果与模型回答事实;工具调用结果与模型输出都需要使用者核对。
2 功能特性
2.1 对话与文本生成
- 三种模式:
instruct面向指令跟随(类似 ChatGPT),chat-instruct/chat用于与自定义角色对话;提示词自动套用模型自带或指定的 Jinja2 聊天模板。 - 可编辑历史消息、在消息版本间导航、在任意节点分支会话;Notebook 标签用于对话轮次之外的自由文本续写。
- 深色 / 浅色主题、代码块语法高亮、数学表达式 LaTeX 渲染。
2.2 视觉与文件附件
- 视觉(多模态):可在消息中附加图片,让模型做视觉理解;视觉模型需要配套
mmproj文件。 - 文件附件:上传文本文件、PDF 与
.docx文档,围绕其内容对话。
2.3 多后端与本地 API
- 后端覆盖 llama.cpp、ik_llama.cpp、Transformers、ExLlamaV3、TensorRT-LLM;后端与模型之间可在界面内切换而不必重启进程。
- 提供 OpenAI / Anthropic 兼容的 Chat、Completions、Messages
端点,支持工具调用;可作为 OpenAI / Anthropic API 的本地替代,通过
--api-key鉴权。 --public-api可借助 Cloudflare 生成公网 API 地址;--nowebui可只启动 API、不加载 Gradio 界面。
2.4 工具调用与 MCP
- 模型在聊天中可调用自定义函数,内置网页搜索、页面抓取、数学计算等示例;每个工具就是一个独立
.py文件,便于二次编写。 - 支持接入 MCP(Model Context Protocol)服务器;可开启“每次工具调用前询问批准”的确认模式。
2.5 训练与图像生成
- 训练:在多轮聊天或原始文本数据集上微调 LoRA,支持中断后续训;完整安装后在 Training 标签操作。
- 图像生成:独立标签页运行
diffusers模型(如 Z-Image-Turbo),支持 4-bit / 8-bit 量化与持久图库,图片元数据随结果保存。
2.6 隐私与扩展
- 100% 离线、零遥测、无外部资源加载、无远程更新请求;界面内不主动上报使用数据。
- 内置与社区扩展涵盖 TTS、语音输入、翻译等;完整列表见扩展仓库,扩展依赖由更新向导统一安装。
3 官方界面预览
3.1 Chat 模式与工具调用
下图为桌面端 Chat
标签:左侧为历史会话列表,中间为对话区——模型在思考后依次调用
web_search 与多个 fetch_webpage
工具抓取资料,再汇总给出 16GB 显存 + 32GB
内存机型的本地模型选型建议;右侧为工具勾选、MCP 服务器与
instruct / chat-instruct / chat 模式切换面板。

3.2 Instruct 模式
下图为浏览器 Web UI 的 Instruct 模式:右侧工具区勾选
fetch_webpage、web_search 并开启
Confirm tool calls;下方 Mode 单选
instruct,模型按指令回答“几何纹样陶器在人类史前哪个时期达到顶峰”,回答中区分了不同考古文化时期。

3.3 Notebook 自由续写
下图为 Notebook 标签:左侧 Input 输入草稿,右侧 Output 支持
Raw、Markdown、HTML、Logits、Tokens 多种视图;Continue
在续写位置追加,Generate 从头生成,底部 Prompt
下拉可切换保存的提示词模板。

3.4 Parameters 采样面板
下图为 Parameters 标签的 Generation 子页:左侧为 Curve
shape(temperature、top-p、top-k、min-p、top-n-sigma、typical_p、XTC)、Curve
cutoff 与重复抑制(DRY、重复惩罚等),中间为 mirostat、adaptive-p
与采样优先级;右侧为
max_new_tokens、上下文截断长度、Seed、自定义系统消息、停止字符串、Token
禁用与 GBNF 语法文件;顶部 Preset 可保存采样预设,Filter by loader
按后端过滤参数项。

4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 当前规范仓库 | https://github.com/oobabooga/textgen | 最新源码与启动脚本 |
| 旧仓库路径 | https://github.com/oobabooga/text-generation-webui | 历史名称,自动跳转到 textgen |
| Releases | https://github.com/oobabooga/textgen/releases | 跨平台便携包下载 |
| Wiki 文档 | https://github.com/oobabooga/textgen/wiki | 安装、扩展、API、训练、多模态教程 |
| Issues | https://github.com/oobabooga/textgen/issues | Bug 跟踪与功能反馈 |
| 社区扩展仓库 | https://github.com/oobabooga/textgen-extensions | TTS、语音输入、翻译等扩展清单 |
| 模型下载 | Hugging Face GGUF 模型搜索 | 按下载量排序的文本生成模型 |
| 显存估算 | GGUF VRAM 计算器 | 估算模型占用显存 |
| 选型参考 | LocalBench | 官方推荐的 GGUF 量化选型基准 |
| 后端:llama.cpp | github.com/ggerganov/llama.cpp | GGUF 本地推理后端 |
| 后端:Transformers | github.com/huggingface/transformers | PyTorch 模型后端 |
| 后端:ExLlamaV3 | github.com/turboderp-org/exllamav3 | EXL3 高速推理后端 |
| 后端:TensorRT-LLM | github.com/NVIDIA/TensorRT-LLM | NVIDIA 高性能推理后端 |
| 社区论坛 | reddit.com/r/Oobabooga | 使用经验与问题交流 |
5 前置要求与服务器配置
5.1 软件前提
- Python:便携 venv 方式要求 Python 3.9
及以上;完整安装由启动脚本通过 Miniforge 在
installer_files/内自建 Conda 环境,不污染系统 Python。 - 显卡驱动 / CUDA(NVIDIA):CUDA 后端需要与 PyTorch 版本匹配的显卡驱动;AMD 走 ROCm,Apple Silicon 走 MPS,其余可使用 CPU / Vulkan。
- 磁盘空间:便携包体积较小;完整安装约需 10GB 并下载 PyTorch;模型文件通常数 GB 到数十 GB,按模型规模预留独立磁盘空间。
- 网络:首次下载模型、PyTorch 与依赖需要访问 Hugging Face 与 PyTorch 源;运行过程本身不强制联网。
- Docker(可选):Docker 部署需要 Docker Compose v2.17 或更高版本。
5.2 硬件建议
| 场景 | 说明 |
|---|---|
| 大模型本地推理 | 显存优先;显存不足时可把部分层卸载到 CPU / 内存,速度随之下降;可用官方 GGUF 计算器按模型与量化等级估算占用 |
| 小参数 GGUF | 消费级显卡甚至 CPU 可运行,延迟与吞吐以实测为准 |
| Transformers / EXL3 / TensorRT-LLM | 对显卡与显存要求更高,需要完整安装与对应后端依赖 |
| 训练 LoRA | 建议独立显存与内存,CPU 训练极慢(官方启动参数提示语) |
| 图像生成 | 独立 diffusers 模型额外占用显存,支持 CPU offload 与
4/8-bit 量化 |
5.3 目录、端口与环境变量
| 项 | 默认值 | 用途 |
|---|---|---|
| Web UI 端口 | 7860 |
浏览器访问 Gradio 界面,--listen-port
修改、--listen-host 绑定网卡 |
| API 端口 | 5000 |
--api 开启后的本地 API,--api-port
修改;--api-key / --admin-key 鉴权 |
| 模型目录 | user_data/models |
GGUF 单文件直放;多文件模型放入子文件夹 |
| LoRA 目录 | user_data/loras |
微调产物存放位置 |
| 缓存目录 | user_data/cache |
临时缓存;Docker 部署需提前创建 |
| 日志目录 | user_data/logs |
运行日志;Docker 部署需提前创建 |
| 配置文件 | user_data/settings.yaml |
界面默认参数;--settings 指定其他 YAML |
| 启动参数文件 | user_data/CMD_FLAGS.txt |
持久化命令行参数,每行一条 |
| 安装环境 | installer_files/ |
一键脚本创建的 Miniforge Conda 环境 |
6 方式一:Docker Compose 部署(官方 Dockerfile)
官方仓库 docker/ 目录按厂商提供 Dockerfile 与 Compose
文件;先根据显卡型号选择对应软链,再拷贝环境变量模板并构建。
6.1 选择后端软链
git clone https://github.com/oobabooga/textgen.git
cd textgen
# NVIDIA 显卡
ln -s docker/{nvidia/Dockerfile,nvidia/docker-compose.yml,.dockerignore} .
# AMD 显卡
ln -s docker/{amd/Dockerfile,amd/docker-compose.yml,.dockerignore} .
# Intel 显卡
ln -s docker/{intel/Dockerfile,intel/docker-compose.yml,.dockerignore} .
# 纯 CPU
ln -s docker/{cpu/Dockerfile,cpu/docker-compose.yml,.dockerignore} .6.2 准备环境变量与目录
cp docker/.env.example .env
mkdir -p user_data/logs user_data/cache按需编辑 .env:
TORCH_CUDA_ARCH_LIST:按 NVIDIA 显卡型号填写对应算力代号;APP_RUNTIME_GID:宿主机用户组 ID,在终端执行id -g获取;BUILD_EXTENIONS:可选,填写逗号分隔的扩展名称,构建时一并安装。
在 user_data/CMD_FLAGS.txt
中写入需要的启动参数,例如只监听本机、使用 CPU 模式:
--listen
--cpu6.3 构建并启动
docker compose up --build- 需要 Docker Compose v2.17 或更高版本;更多 Docker 说明见 Wiki 的
Docker 页面,第三方额外镜像可参考社区维护的
text-generation-webui-docker仓库。 - 构建完成后按
--listen-port与--api-port访问 Web UI 与 API;容器内模型、配置与日志通过user_data卷持久化。 - 公网暴露前先配置
--gradio-auth账号密码或--api-key,不要把无鉴权界面直接发布到不可信网络。
7 方式二:便携包、本地脚本与 Conda 安装
7.1 桌面便携包(最快上手)
- 到 Releases 下载对应操作系统与硬件(CUDA / Vulkan / ROCm / CPU-only)的便携构建,依赖已内置。
- 解压后双击
textgen可执行文件,桌面窗口直接打开。 - 便携包面向 GGUF(llama.cpp)模型;训练、图像生成与额外后端请使用完整安装。
7.2 venv 便携安装(任意 Python 3.9+)
git clone https://github.com/oobabooga/textgen
cd textgen
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS / Linux:
source venv/bin/activate
# 按硬件选择 requirements/portable/ 下对应文件安装依赖
pip install -r requirements/portable/requirements.txt --upgrade
# 启动服务器(便携模式、开启 API、自动打开浏览器)
python server.py --portable --api --auto-launch
# 工作结束后退出虚拟环境
deactivate7.3 完整安装:一键启动脚本
- 克隆仓库或下载源码压缩包并解压。
- 运行对应系统脚本:
start_windows.bat、start_linux.sh、start_macos.sh。 - 按提示选择显卡厂商;脚本在
installer_files/内用 Miniforge 创建 Conda 环境并安装完整依赖。 - 安装完成后浏览器打开
http://127.0.0.1:7860。
常用后续操作:
# 再次启动:运行同一个 start_ 脚本即可
./start_linux.sh
# 直接向脚本传命令行参数
./start_linux.sh --help
# 把参数持久化到 user_data/CMD_FLAGS.txt,例如开启 API
# --api
# 更新:运行对应系统的更新向导
# Windows: update_wizard_windows.bat
# Linux: update_wizard_linux.sh
# macOS: update_wizard_macos.sh
# 从干净状态重装:删除 installer_files 目录后重新运行 start_ 脚本自动化安装可预先设置环境变量:GPU_CHOICE、LAUNCH_AFTER_INSTALL、INSTALL_EXTENSIONS,示例:
GPU_CHOICE=A LAUNCH_AFTER_INSTALL=FALSE INSTALL_EXTENSIONS=TRUE ./start_linux.sh需要在自建环境中执行命令时,用
cmd_linux.sh、cmd_windows.bat、cmd_macos.sh
进入交互式
shell。start_、update_wizard_、cmd_
脚本都不需要管理员 / root 权限。
7.4 完整安装:手动 Conda 环境
先安装 Miniforge,然后:
conda create -n textgen python=3.13
conda activate textgen按系统安装 PyTorch(示例版本以官方 Wiki 与 pytorch.org 最新指令为准):
| 系统 / GPU | 安装命令 |
|---|---|
| Linux/WSL NVIDIA | pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cu128 |
| Linux/WSL CPU | pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cpu |
| Linux AMD | pip3 install https://repo.radeon.com/rocm/manylinux/rocm-rel-7.2/torch-2.9.1%2Brocm7.2.0.lw.git7e1940d4-cp313-cp313-linux_x86_64.whl |
| macOS MPS | pip3 install torch==2.9.1 |
| Windows NVIDIA | pip3 install torch==2.9.1 --index-url https://download.pytorch.org/whl/cu128 |
| Windows CPU | pip3 install torch==2.9.1 |
git clone https://github.com/oobabooga/textgen
cd textgen
# 按显卡选择 requirements/full/ 下对应文件:
# NVIDIA requirements.txt
# AMD requirements_amd.txt
# CPU only requirements_cpu_only.txt
# Apple Intel requirements_apple_intel.txt
# Apple Silicon requirements_apple_silicon.txt
pip install -r requirements/full/requirements.txt
# 启动 Web UI
python server.py浏览器访问 http://127.0.0.1:7860。需要 nvcc
手动编译某些库时,再按 Wiki 说明安装对应版本 CUDA 工具包。官方
requirements*.txt 使用 GitHub Actions 预编译
wheel;硬件无对应 wheel 时改用 requirements_nowheels.txt
并手动安装目标加载器。
7.5 放置模型并自动加载
GGUF 单文件模型直接放入
user_data/models,界面自动识别:
textgen
└── user_data
└── models
└── my-model.gguf多文件 Transformers / EXL3 模型放入 user_data/models
下的子文件夹:
textgen
└── user_data
└── models
└── Qwen_Qwen3-8B
├── config.json
├── generation_config.json
├── model-00001-of-00004.safetensors
├── ...
├── tokenizer_config.json
└── tokenizer.json跳过每次启动的 Model 标签,把参数写入
user_data/CMD_FLAGS.txt:
--model my-model.gguf
--cache-type q8_08 配置项说明
8.1 配置文件与启动参数
user_data/settings.yaml:界面默认参数模板参考user_data/settings-template.yaml;创建user_data/settings.yaml后无需--settings即自动加载。user_data/CMD_FLAGS.txt:每行一条命令行参数,等价于在server.py后追加;适合持久化模型名、量化类型、API 开关等常用项。- 命令行参数分组如下,完整选项以
python server.py --help为准。
8.2 基础与模型参数
| 参数 | 说明 |
|---|---|
--user-data-dir <目录> |
用户数据目录,默认自动检测 |
--multi-user |
多用户模式;聊天历史不保存也不自动加载,适合小型可信团队 |
--model <名称> |
默认启动加载的模型 |
--lora <名称 ...> |
启动时加载的 LoRA,多个用空格分隔 |
--model-dir <目录> |
模型根目录;--lora-dir 对应 LoRA 目录 |
--model-menu |
首次启动时在终端显示模型选择菜单 |
--settings <文件> |
从指定 YAML 加载界面默认设置 |
--extensions <名称 ...> |
启动加载的扩展列表 |
--verbose |
在终端打印完整提示词 |
--idle-timeout <分钟> |
闲置指定分钟后卸载模型,再次使用时自动重载 |
8.3 加载器、上下文与缓存
| 参数 | 说明 |
|---|---|
--loader <名称> |
手动指定加载器:Transformers、llama.cpp、ExLlamav3_HF、ExLlamav3、TensorRT-LLM;不指定时自动检测 |
--ctx-size <N> |
上下文长度(Token);llama.cpp 可设 0 自动(需
--gpu-layers -1),其他加载器默认 8192 |
--cache-type <N> |
KV 缓存类型:llama.cpp 支持 fp16 / q8_0 / q4_0;ExLlamaV3 支持 fp16 / q2–q8,可分别指定 k 位与 v 位 |
8.4 llama.cpp 后端常用参数
| 参数 | 说明 |
|---|---|
--gpu-layers <N> |
卸载到 GPU 的层数,-1 自动 |
--cpu-moe |
把 MoE 专家层放到 CPU |
--mmproj <路径> |
视觉模型的 mmproj 文件路径 |
--streaming-llm |
移除旧消息时避免重新评估整段提示词 |
--tensor-split <比例> |
多卡按比例拆分模型,如 60,40 |
--split-mode <方式> |
拆分方式:layer / row / tensor / none;tensor
可显著改善多卡速度 |
--no-mmap / --mlock |
禁止 mmap / 强制模型常驻内存 |
--no-kv-offload |
不把 K、Q、V 卸载到 GPU,省显存但降速 |
--batch-size / --ubatch-size |
提示词 Token 批处理上限(应用层 / 设备层) |
--threads / --threads-batch /
--numa |
线程数、批处理线程与 NUMA 分配 |
--parallel <N> |
并行请求槽位数,上下文按槽位均分 |
--fit-target <MiB> |
自动 GPU 层数的每卡显存目标余量,逗号分隔 |
--extra-flags <参数> |
透传给 llama-server 的额外参数,如
"--jinja --rpc 192.168.1.100:50052" |
--ik |
使用 ik_llama.cpp 替代上游 llama.cpp(需安装对应二进制包) |
8.5 Transformers / 量化参数
| 参数 | 说明 |
|---|---|
--cpu |
使用 CPU 生成文本(官方提示 CPU 训练极慢) |
--cpu-memory <GiB> |
CPU 卸载可用内存上限 |
--disk |
显存与内存都装不下时,把剩余层放到磁盘 |
--disk-cache-dir <目录> |
磁盘缓存保存位置 |
--load-in-8bit |
bitsandbytes 8-bit 加载 |
--bf16 |
bfloat16 精度,需要 NVIDIA Ampere 及以上 |
--no-cache |
关闭 KV 缓存,略降显存但影响性能 |
--trust-remote-code |
加载时信任模型远端代码(部分模型必需) |
--force-safetensors |
强制使用 safetensors,阻止任意代码执行 |
--no_use_fast |
关闭 tokenizer 的 fast 版本 |
--attn-implementation <实现> |
sdpa / eager / flash_attention_2 |
--load-in-4bit / --use_double_quant /
--compute_dtype / --quant_type |
bitsandbytes 4-bit 量化组合 |
--gpu-split <GB> |
ExLlamaV3 每卡显存分配,如 20,7,7 |
--enable-tp / --tp-backend |
ExLlamaV3 张量并行,后端 native / nccl |
8.6 Gradio 界面与网络
| 参数 | 说明 |
|---|---|
--listen |
允许局域网内其他设备访问 |
--listen-port <端口> |
监听端口(默认 7860) |
--listen-host <地址> |
监听主机名 / 网卡地址 |
--share |
创建公网临时地址(适合 Colab 等场景) |
--auto-launch |
启动后自动打开默认浏览器 |
--gradio-auth <user:pass> |
界面账号密码;多组用逗号分隔;--gradio-auth-path
指定凭据文件 |
--ssl-keyfile / --ssl-certfile |
自建 HTTPS 密钥与证书 |
--subpath <路径> |
反向代理下的自定义子路径 |
--portable |
隐藏便携模式不可用的功能(如训练) |
--no-electron |
便携包中跳过 Electron 桌面窗口,改用浏览器界面 |
8.7 API 参数
| 参数 | 说明 |
|---|---|
--api |
开启 API 服务器 |
--public-api |
用 Cloudflare 为 API 创建公网地址;--public-api-id
指定命名隧道 |
--api-port <端口> |
API 监听端口,默认 5000 |
--api-key <密钥> |
API 访问密钥 |
--admin-key <密钥> |
加载 / 卸载模型等管理操作密钥;未设置时与 --api-key
相同 |
--api-enable-ipv6 /
--api-disable-ipv4 |
API 协议栈开关 |
--nowebui |
不启动 Gradio 界面,纯 API 模式 |
8.8 采样与生成默认值
Parameters 面板与 API
默认生成参数一一对应:temperature、动态温度
dynatemp-low/high/exponent、top-p、top-k、min-p、top-n-sigma、typical-p、XTC、epsilon
/ eta
cutoff、tfs、top-a、adaptive-p、DRY、repetition-penalty、frequency-penalty、presence-penalty、encoder-repetition-penalty、no-repeat-ngram-size、mirostat-mode/tau/eta、guidance-scale、enable-thinking、reasoning-effort、preserve-thinking
等;--chat-template-file 可指定 .jinja /
.jinja2 / .yaml 模板覆盖模型内置指令模板。
9 常用运维命令
# ---- 一键脚本(完整安装)----
./start_linux.sh # 启动
./start_linux.sh --help # 查看可传参数
./start_linux.sh --api # 直接传参启动并开启 API
./cmd_linux.sh # 进入 Conda 交互式 shell
update_wizard_linux.sh # 更新依赖与扩展需求
# ---- venv 便携安装 ----
source venv/bin/activate
python server.py --portable --api --auto-launch
deactivate
# ---- Conda 手动安装 ----
conda activate textgen
python server.py
pip install -r requirements/full/requirements.txt --upgrade # 更新依赖
# ---- Docker ----
docker compose up --build
docker compose logs -f
# ---- 模型与配置 ----
# user_data/models/ 模型目录
# user_data/CMD_FLAGS.txt 持久化启动参数
# user_data/settings.yaml 界面默认设置
# user_data/logs/ 运行日志备份与迁移:复制整个 user_data
目录即可带走模型配置、聊天历史、LoRA、设置与日志;模型体量大时可单独备份配置与历史,模型目录重新下载。多用户场景使用
--multi-user,该模式不保存聊天历史,仅适合小型可信团队。
10 常见故障排查
10.1 启动后浏览器打不开 7860
- 确认
python server.py/ 启动脚本已完成模型与依赖加载,终端未报错;首次启动需要解压模型与初始化环境。 - 局域网访问必须加
--listen,并核对--listen-host与--listen-port;端口被占用时用--listen-port改端口。 - Docker 部署核对 Compose 端口映射与
user_data/CMD_FLAGS.txt中的--listen选项。
10.2 API 连接被拒绝
- API 必须显式加
--api;确认--api-port(默认 5000)与客户端请求地址一致。 - 需要鉴权时在客户端填入
--api-key;加载 / 卸载模型等管理请求使用--admin-key。 --nowebui只启动 API;反之未加--api时 5000 端口不会监听。
10.3 模型在 Model 列表中看不到
- GGUF 单文件直接放进
user_data/models;多文件模型必须放进user_data/models下的子文件夹,且config.json、tokenizer.json等文件齐全。 - 启动日志核对
--model-dir是否指向正确目录;模型文件损坏或未下载完整时重新下载。 - 多文件 Transformers / EXL3 模型在便携包中不可用,需切换到完整安装与对应后端。
10.4 显存不足(OOM)
- 换用量化等级更低的 GGUF,或减小
--ctx-size;用--gpu-layers控制卸载层数,必要时开启--cpu-moe、--cpu-memory或--disk把部分层放到内存 / 磁盘。 - Transformers 后端尝试
--load-in-8bit/--load-in-4bit;关闭不必要的图像模型与扩展。 - 先用官方 GGUF 显存计算器按模型与量化等级估算占用,再选择模型。
10.5 模型不输出或回答异常
- 核对
instruct/chat-instruct/chat模式与模型类型是否匹配;必要时用--chat-template-file指定正确 Jinja2 模板。 - 部分模型需要
--trust-remote-code;tokenizer 异常时尝试--no_use_fast。 - 多轮上下文过长会挤压输出空间,缩小
--ctx-size、清理历史或开启--streaming-llm后重试。 - 工具调用未触发时检查工具是否勾选、MCP 服务器是否配置成功,以及模型本身是否支持工具调用格式。
10.6 视觉模型无反应
确认已通过 --mmproj
指定视觉投影文件;图片格式与模型视觉能力匹配;多模态教程见 Wiki
Multimodal Tutorial。
10.7 显卡 / 后端不被识别
- NVIDIA 核对驱动版本与 PyTorch CUDA 构建是否匹配;AMD 使用 ROCm
对应依赖;Apple Silicon 使用 MPS 依赖;无合适后端时退到
--cpu或 Vulkan 构建。 - 多卡时按后端文档配置
--tensor-split、--split-mode、--gpu-split或 ExLlamaV3 张量并行参数。
10.8 扩展功能异常或安装失败
在更新向导中选择 “Install/update extensions
requirements”,向导会在末尾重装主项目依赖,确保主项目版本优先于冲突的扩展依赖;扩展兼容问题先禁用
--extensions 列表逐项排查。
10.9 更新后启动报错
先备份 user_data;删除 installer_files
目录后重新运行 start_
脚本做干净安装;依赖升级后按所选显卡重新安装
requirements/full/ 对应文件。升级前参考 Wiki
更新说明与依赖变更提示。
10.10 工具搜索 / 页面抓取不工作
网页搜索与页面抓取工具需要对应外部服务或密钥配置,按 Wiki Tool-Calling Tutorial 设置;离线内网环境下相关工具不可用属正常现象,关闭对应工具勾选即可。
11 风险与合规说明
以下条款整理自官方 README、AGPL-3.0 许可证、Wiki 与当前 main 分支代码口径;如与官方原文不一致,以仓库
LICENSE、README 与 Wiki 为准。
11.1 AGPL-3.0 协议义务
项目采用 GNU AGPL-3.0,具有强 copyleft 与网络服务条款:修改后的版本在公网作为服务运行时,必须向访问该服务的用户提供对应完整源码。把 TextGen 二次开发后对外提供网页或 API 服务、嵌入商业产品或分发修改版前,务必通读 AGPL-3.0 全文并履行源码开放义务;扩展、工具与 LoRA 加载方式不改变核心程序的协议归属。
11.2 模型权重与第三方许可
- 项目本体不含模型权重;下载的 GGUF、Transformers、EXL3 模型分别遵循 BigCode-OpenRAIL、Llama、Mistral、Gemma、Qwen 等各自许可证,部分限定非生产用途、署名或商用授权条件。
- 后端依赖(llama.cpp、Transformers、ExLlamaV3、TensorRT-LLM、bitsandbytes、PyTorch 等)沿用其自身许可证;企业集成时逐项核对。
11.3 隐私与离线边界
- 官方承诺本体 100%
离线、零遥测、不加载外部资源、不发起远程更新;但启用网页搜索、页面抓取、远程模型
API、
--public-api公网隧道或第三方扩展后,数据会按所选工具与端点外发。 - 处理涉密代码、个人信息或未公开文档时,保持纯本地模型与本地工具,不开启公网
API 与搜索扩展;
user_data目录包含聊天历史与配置,按敏感数据加密备份。
11.4 生成内容可靠性
- 模型可能产生幻觉、错误代码、不安全建议与事实性错误;代码、配置与回答在采纳前必须人工审阅、测试与安全扫描,不要把未验证的本地模型输出直接用于生产系统。
- 工具调用结果未经模型核验;涉及网页抓取、系统命令与文件操作时优先开启
Confirm tool calls确认机制。
11.5 商业使用与免责
TextGen 按现状(AS-IS)提供,不保证与特定硬件、模型格式、后端或操作系统组合持续兼容,也不保证输出正确性;使用者自行承担模型选型、数据泄露、服务中断、许可违约与业务损失风险。如认为仓库内特定文件侵犯合法权益,请通过 GitHub Issues 提交说明,不要在公开 Issue、模型目录截图或配置示例中提交 API 密钥、内网地址或私有对话记录。