OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  代码  ›  Text-generation-webui — 本地运行 LLM 的 Gradio 界面

Text-generation-webui — 本地运行 LLM 的 Gradio 界面

 
  patch ·  2026-01-27 16:14:42 · 13 次点击  · 0 条评论  

Text Generation Web UI

一个基于 Gradio 的大语言模型 Web 界面。

尝试 Deep Reason 扩展

Image1 Image2
Image1 Image2

🔥 最新动态

  • 项目现已支持图像生成!包括 Z-Image-Turbo、4bit/8bit 量化、torch.compile 以及 LLM 生成的提示词变体(教程)。

功能特性

  • 支持多种本地文本生成后端,包括 llama.cppTransformersExLlamaV3ExLlamaV2TensorRT-LLM(后者通过其专属的 Dockerfile 支持)。
  • 易于安装:可选择便携版构建(零配置,解压即用)以在 Windows/Linux/macOS 上运行 GGUF 模型,或使用一键安装程序创建独立的 installer_files 目录。
  • 100% 离线且私密,无遥测、外部资源或远程更新请求。
  • 文件附件:上传文本文件、PDF 文档和 .docx 文档,并与其内容进行对话。
  • 视觉(多模态模型):在消息中附加图像以实现视觉理解(教程)。
  • 图像生成:专为 diffusers 模型(如 Z-Image-Turbo)设计的独立标签页。支持 4 位/8 位量化,并带有包含元数据的持久化画廊(教程)。
  • 网络搜索:可选择使用 LLM 生成的查询词搜索互联网,为对话添加上下文。
  • 美观的 UI,支持深色和浅色主题。
  • 代码块的语法高亮和数学表达式的 LaTeX 渲染。
  • instruct 模式用于遵循指令(类似 ChatGPT),chat-instruct/chat 模式用于与自定义角色对话。
  • 使用 Jinja2 模板自动格式化提示词。您无需再担心提示词格式。
  • 编辑消息、在消息版本间导航,并可在任意点分支对话。
  • 多种采样参数和生成选项,用于精细的文本生成控制。
  • 无需重启即可在 UI 中切换不同模型。
  • 为 GGUF 模型自动分配 GPU 层(在 NVIDIA GPU 上)。
  • 在 Notebook 标签页中进行自由格式的文本生成,不受聊天轮次限制。
  • 兼容 OpenAI 的 API,包含 Chat 和 Completions 端点,并支持工具调用——详见示例
  • 支持扩展,提供众多内置和用户贡献的扩展。详情请参阅 wiki扩展目录

如何安装

✅ 选项 1:便携版构建(1 分钟上手)

无需安装——只需下载、解压并运行。所有依赖项均已包含。

兼容 Windows、Linux 和 macOS 上的 GGUF (llama.cpp) 模型。

从此处下载:https://github.com/oobabooga/text-generation-webui/releases

选项 2:使用 venv 手动便携安装

非常快速的安装方式,适用于任何 Python 3.9+ 环境:

# 克隆仓库
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 安装依赖项(根据您的硬件,在 requirements/portable 下选择合适的文件)
pip install -r requirements/portable/requirements.txt --upgrade

# 启动服务器(基础命令)
python server.py --portable --api --auto-launch

# 工作完成后,停用环境
deactivate

选项 3:一键安装程序

适用于需要额外后端(ExLlamaV3、Transformers)或扩展(TTS、语音输入、翻译等)的用户。需要约 10GB 磁盘空间并会下载 PyTorch。

  1. 克隆仓库,或下载其源代码并解压。
  2. 运行适用于您操作系统的启动脚本:start_windows.batstart_linux.shstart_macos.sh
  3. 根据提示选择您的 GPU 供应商。
  4. 安装完成后,在浏览器中打开 http://127.0.0.1:7860

稍后要重启 Web UI,请运行相同的 start_ 脚本。

您可以直接传递命令行标志(例如 ./start_linux.sh --help),或将它们添加到 user_data/CMD_FLAGS.txt 中(例如添加 --api 以启用 API)。

要更新,请运行适用于您操作系统的更新脚本:update_wizard_windows.batupdate_wizard_linux.shupdate_wizard_macos.sh

要使用全新的 Python 环境重新安装,请删除 installer_files 文件夹并再次运行 start_ 脚本。

一键安装程序详情 ### 一键安装程序 该脚本使用 Miniforge 在 `installer_files` 文件夹中设置 Conda 环境。 如果您需要在 `installer_files` 环境中手动安装某些内容,可以使用 cmd 脚本启动交互式 shell:`cmd_linux.sh`、`cmd_windows.bat` 或 `cmd_macos.sh`。 * 无需以管理员/root 身份运行任何脚本(`start_`、`update_wizard_` 或 `cmd_`)。 * 要安装扩展的依赖项,建议使用更新向导脚本并选择“安装/更新扩展依赖项”选项。最后,此脚本将安装项目的主要依赖项,以确保在发生版本冲突时优先使用它们。 * 对于自动化安装,您可以使用环境变量 `GPU_CHOICE`、`LAUNCH_AFTER_INSTALL` 和 `INSTALL_EXTENSIONS`。例如:`GPU_CHOICE=A LAUNCH_AFTER_INSTALL=FALSE INSTALL_EXTENSIONS=TRUE ./start_linux.sh`。
使用 conda 或 docker 进行手动完整安装 ### 使用 Conda 完整安装 #### 0. 安装 Conda https://github.com/conda-forge/miniforge 在 Linux 或 WSL 上,可以使用以下两个命令自动安装 Miniforge:
curl -sL "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" > "Miniforge3.sh"
bash Miniforge3.sh
对于其他平台,请从以下地址下载:https://github.com/conda-forge/miniforge/releases/latest #### 1. 创建新的 conda 环境
conda create -n textgen python=3.11
conda activate textgen
#### 2. 安装 Pytorch | 系统 | GPU | 命令 | |--------|---------|---------| | Linux/WSL | NVIDIA | `pip3 install torch==2.7.1 --index-url https://download.pytorch.org/whl/cu128` | | Linux/WSL | 仅 CPU | `pip3 install torch==2.7.1 --index-url https://download.pytorch.org/whl/cpu` | | Linux | AMD | `pip3 install torch==2.7.1 --index-url https://download.pytorch.org/whl/rocm6.2.4` | | MacOS + MPS | 任何 | `pip3 install torch==2.7.1` | | Windows | NVIDIA | `pip3 install torch==2.7.1 --index-url https://download.pytorch.org/whl/cu128` | | Windows | 仅 CPU | `pip3 install torch==2.7.1` | 最新的命令可以在这里找到:https://pytorch.org/get-started/locally/。 如果您需要 `nvcc` 手动编译某些库,还需要额外安装:
conda install -y -c "nvidia/label/cuda-12.8.1" cuda
#### 3. 安装 Web UI
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
pip install -r requirements/full/<根据下表选择 requirements 文件>
要使用的 requirements 文件: | GPU | CPU | 要使用的 requirements 文件 | |--------|---------|---------| | NVIDIA | 有 AVX2 | `requirements.txt` | | NVIDIA | 无 AVX2 | `requirements_noavx2.txt` | | AMD | 有 AVX2 | `requirements_amd.txt` | | AMD | 无 AVX2 | `requirements_amd_noavx2.txt` | | 仅 CPU | 有 AVX2 | `requirements_cpu_only.txt` | | 仅 CPU | 无 AVX2 | `requirements_cpu_only_noavx2.txt` | | Apple | Intel | `requirements_apple_intel.txt` | | Apple | Apple Silicon | `requirements_apple_silicon.txt` | ### 启动 Web UI
conda activate textgen
cd text-generation-webui
python server.py
然后访问 `http://127.0.0.1:7860` #### 手动安装 上述 `requirements*.txt` 包含通过 GitHub Actions 预编译的各种 wheel 包。如果您希望手动编译,或者因为您的硬件没有合适的 wheel 包而需要手动编译,可以使用 `requirements_nowheels.txt`,然后手动安装您所需的加载器。 ### 备选方案:Docker
对于 NVIDIA GPU:
ln -s docker/{nvidia/Dockerfile,nvidia/docker-compose.yml,.dockerignore} .
对于 AMD GPU:
ln -s docker/{amd/Dockerfile,amd/docker-compose.yml,.dockerignore} .
对于 Intel GPU:
ln -s docker/{intel/Dockerfile,amd/docker-compose.yml,.dockerignore} .
对于仅 CPU:
ln -s docker/{cpu/Dockerfile,cpu/docker-compose.yml,.dockerignore} .
cp docker/.env.example .env
#创建 logs/cache 目录:
mkdir -p user_data/logs user_data/cache
# 编辑 .env 并设置:
#   TORCH_CUDA_ARCH_LIST 基于您的 GPU 型号
#   APP_RUNTIME_GID      您主机用户的组 ID(在终端中运行 `id -g`)
#   BUILD_EXTENIONS      可选,添加要构建的扩展的逗号分隔列表
# 编辑 user_data/CMD_FLAGS.txt 并在其中添加您想要执行的选项(如 --listen --cpu)
#
docker compose up --build
* 您需要安装 Docker Compose v2.17 或更高版本。请参阅[本指南](https://github.com/oobabooga/text-generation-webui/wiki/09-%E2%80%90-Docker)获取说明。 * 有关其他 docker 文件,请查看[此仓库](https://github.com/Atinoda/text-generation-webui-docker)。 ### 更新依赖项 `requirements*.txt` 文件会不时更新。要更新,请使用以下命令:
conda activate textgen
cd text-generation-webui
pip install -r <您之前使用的 requirements 文件> --upgrade
命令行标志列表 ```txt usage: server.py [-h] [--multi-user] [--model MODEL] [--lora LORA [LORA ...]] [--model-dir MODEL_DIR] [--lora-dir LORA_DIR] [--model-menu] [--settings SETTINGS] [--extensions EXTENSIONS [EXTENSIONS ...]] [--verbose] [--idle-timeout IDLE_TIMEOUT] [--loader LOADER] [--ctx-size N] [--cache-type N] [--model-draft MODEL_DRAFT] [--draft-max DRAFT_MAX] [--gpu-layers-draft GPU_LAYERS_DRAFT] [--device-draft DEVICE_DRAFT] [--ctx-size-draft CTX_SIZE_DRAFT] [--gpu-layers N] [--mmproj MMPROJ] [--streaming-llm] [--tensor-split TENSOR_SPLIT] [--row-split] [--no-mmap] [--mlock] [--no-kv-offload] [--batch-size BATCH_SIZE] [--threads THREADS] [--threads-batch THREADS_BATCH] [--numa] [--extra-flags EXTRA_FLAGS] [--cpu] [--cpu-memory CPU_MEMORY] [--disk] [--disk-cache-dir DISK_CACHE_DIR] [--load-in-8bit] [--bf16] [--no-cache] [--trust-remote-code] [--force-safetensors] [--no_use_fast] [--attn-implementation IMPLEMENTATION] [--load-in-4bit] [--use_double_quant] [--compute_dtype COMPUTE_DTYPE] [--quant_type QUANT_TYPE] [--enable-tp] [--tp-backend TP_BACKEND] [--gpu-split GPU_SPLIT] [--autosplit] [--cfg-cache] [--no_flash_attn] [--no_xformers] [--no_sdpa] [--num_experts_per_token N] [--cpp-runner] [--deepspeed] [--nvme-offload-dir NVME_OFFLOAD_DIR] [--local_rank LOCAL_RANK] [--alpha_value ALPHA_VALUE] [--rope_freq_base ROPE_FREQ_BASE] [--compress_pos_emb COMPRESS_POS_EMB] [--listen] [--listen-port LISTEN_PORT] [--listen-host LISTEN_HOST] [--share] [--auto-launch] [--gradio-auth GRADIO_AUTH] [--gradio-auth-path GRADIO_AUTH_PATH] [--ssl-keyfile SSL_KEYFILE] [--ssl-certfile SSL_CERTFILE] [--subpath SUBPATH] [--old-colors] [--portable] [--api] [--public-api] [--public-api-id PUBLIC_API_ID] [--api-port API_PORT] [--api-key API_KEY] [--admin-key ADMIN_KEY] [--api-enable-ipv6] [--api-disable-ipv4] [--nowebui] Text Generation Web UI options: -h, --help 显示此帮助信息并退出 基本设置: --multi-user 多用户模式。聊天历史不会被保存或自动加载。警告:这可能不适合公开共享。 --model MODEL 默认加载的模型名称。 --lora LORA [LORA ...] 要加载的 LoRA 列表。如果要加载多个 LoRA,请用空格分隔名称。 --model-dir MODEL_DIR 包含所有模型的目录路径。 --lora-dir LORA_DIR 包含所有 LoRA 的目录路径。 --model-menu 在首次启动 Web UI 时在终端中显示模型菜单。 --settings SETTINGS 从此 yaml 文件加载默认界面设置。示例请参见 user_data/settings-template.yaml。如果您创建了一个名为 user_data/settings.yaml 的文件,则该文件将默认加载,无需使用 --settings 标志。 --extensions EXTENSIONS [EXTENSIONS ...] 要加载的扩展列表。如果要加载多个扩展,请用空格分隔名称。 --verbose 将提示词打印到终端。 --idle-timeout IDLE_TIMEOUT 在模型闲置指定分钟数后卸载。当您再次尝试使用时,它将自动重新加载。 模型加载器: --loader LOADER 手动选择模型加载器,否则将自动检测。有效选项:Transformers, llama.cpp, ExLlamav3_HF, ExLlamav2_HF, ExLlamav2, TensorRT-LLM。 上下文和缓存: --ctx-size N, --n_ctx N, --max_seq_len N 上下文大小(以令牌计)。 --cache-type N, --cache_type N KV 缓存类型;有效选项
13 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私政策 ·  服务条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 18 ms
Developed with Cursor