Loading...

文章背景图

博客未发布好用开源项目精选 TOP10|本地部署与使用全指南

2026-10-27
1
- 字
- 分钟

博客未发布好用开源项目精选 TOP10|本地部署与使用全指南

整理:周若琳博客 | 核验日期:2026-10-25 本文精选 10 个博客尚未单独成文的实用开源项目/开源模型,覆盖本地大模型运行、推理引擎、开源大模型、语音克隆、语音识别、数字人口型、实时语音对话、Web UI 与私有知识库 RAG,逐项目给出官方仓库、跳转链接、官方图片、最详细的部署方式与使用方法。

总览

序号 项目 一句话定位 许可 官方仓库 适合场景
01 Ollama 一条命令在本地一键运行开源大模型 MIT https://github.com/ollama/ollama 本地对话、API 服务
02 llama.cpp 纯 C/C++ 高效本地 LLM 推理引擎 MIT https://github.com/ggml-org/llama.cpp 低配机器跑 GGUF 模型
03 Qwen3 系列 阿里开源稠密 + MoE 大模型,本地一键可跑 Apache-2.0 https://github.com/QwenLM/Qwen3 中文对话/推理
04 GPT-SoVITS 少样本中文语音克隆与语音合成 MIT https://github.com/RVC-Boss/GPT-SoVITS 声音复刻、配音
05 faster-whisper 基于 CTranslate2 的高速语音识别 MIT https://github.com/SYSTRAN/faster-whisper 视频字幕、会议转写
06 LiveTalking 实时交互流式数字人引擎 Apache-2.0 https://github.com/lipku/LiveTalking 数字人直播/客服
07 MuseTalk 腾讯音乐 Lyra Lab 实时口型同步 MIT https://github.com/TMElyralab/MuseTalk 视频口型驱动
08 HF speech-to-speech 本地全链路实时语音对话开源语音智能体 Apache-2.0 https://github.com/huggingface/speech-to-speech 语音对话机器人
09 Open WebUI 自托管 LLM Web 界面(类 ChatGPT) MIT https://github.com/open-webui/open-webui 本地模型图形化聊天
10 AnythingLLM 本地私有知识库 RAG 应用(All-in-One) MIT https://github.com/Mintplex-Labs/anything-llm 私有知识库问答

01. Ollama —— 一条命令在本地一键运行开源大模型

适用环境:Windows 10/11 原生、Windows 10/11 + WSL2(Ubuntu 24.04)、带 NVIDIA RTX 3070 8GB / RTX 4090 24GB,或 Linux 云服务器。 信息口径:本章所有命令、路径、环境变量、模型标签与体积均来自 Ollama 官方仓库、官方文档站与官方模型库;核验日期 2026-10-25。

01.1 项目定位与基本信息

项目 内容
一句话定位 本地运行开源大模型的一体化框架:内置模型拉取、GPU/CPU 自动调度、命令行对话、REST 与 OpenAI 兼容 API,适合个人电脑“开箱即用”。
开源许可 MIT License。出处:官方仓库 LICENSE 文件 https://github.com/ollama/ollama/blob/main/LICENSE(原始文件 https://raw.githubusercontent.com/ollama/ollama/main/LICENSE,已实际打开核对,标题为 MIT License)。
官方 GitHub 仓库 https://github.com/ollama/ollama
官方文档站 https://docs.ollama.com —— CLI、Modelfile、API、FAQ、硬件支持、排错等官方说明均在此站。
官方网站 / 模型库 https://ollama.com ;可浏览模型目录 https://ollama.com/library
版本信息 截至 2026-10-25,官方最新 release 为 v0.40.11(发布于 2026-10-24,来源:https://github.com/ollama/ollama/releases/tag/v0.40.11,经重定向与页面 datetime 核验)。
官方 SDK Python https://github.com/ollama/ollama-python ;JavaScript https://github.com/ollama/ollama-js(来源:官方 README “Libraries & SDKs” 节)。

01.2 官方图片

下图为 Ollama 官方 GitHub README 顶部 Logo(非 AI 生成、非第三方图)。

Ollama 官方 Logo

  • 图片来源 URL:https://github.com/ollama/ollama/assets/3325447/0d0b44e2-8f4a-4e99-9b52-a5c1c741c8f7(官方仓库 README 内嵌图片,2026-10-25 用 curl -L 下载)。
  • 本地保存路径:https://zhouruolin.cn/upload/01_ollama_logo.png;file 校验结果:PNG image data, 844 x 844, 8-bit/color RGBA,体积 92,041 字节(>20KB)。

01.3 环境要求

下列硬性要求来自官方 Windows 文档、官方 GPU 支持页与官方 FAQ;Ollama 官方未公布统一的“最低内存/磁盘”数字,内存与磁盘占用随模型权重、上下文长度与并行度变化(官方 FAQ “How does Ollama handle concurrent requests?” 说明:并发时内存按 OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH 扩张)。

类别 官方要求 / 说明 出处
操作系统(Windows 原生) Windows 10 22H2 或更新版本的 Home / Pro 桌面版;工作负载方向为桌面个人电脑,非 Windows Server。 https://docs.ollama.com/windows
操作系统(Linux / WSL2) 通过官方 Linux 一键脚本安装;官方安装脚本在内核匹配 *icrosoft*WSL2 时识别为 WSL2,WSL1 直接报错不支持(脚本原文:Microsoft WSL1 is not currently supported. Please use WSL2 with 'wsl --set-version <distro> 2')。 https://ollama.com/install.sh 第 101–108 行;https://docs.ollama.com/linux
NVIDIA GPU 算力(CUDA Compute Capability)≥ 5.0,驱动 ≥ 550;算力 5.0–6.2 的老卡需要驱动 570+。RTX 3070(算力 8.6) 与 RTX 4090(算力 8.9) 均在官方支持列表中。 https://docs.ollama.com/gpu
显存 官方未给固定下限;规则是“模型必须能整体放入 VRAM 才能在 GPU 上并发加载”,超出部分自动回落到系统内存(CPU/GPU 混合推理,ollama ps 的 Processor 列会显示占比)。8GB 显存建议跑 7B–8B 量级 Q4 量化模型;24GB 显存可上 14B–30B 量级。 https://docs.ollama.com/gpu;FAQ “How does Ollama load models on multiple GPUs?” “How does Ollama handle concurrent requests?”
内存 官方未规定固定最小值。CPU 推理所需内存 ≥ 模型权重体积;GPU 推理仍需为上下文、KV 缓存与调度预留系统内存。 FAQ 并发与显存说明
依赖(Windows) 官方安装包内置 GPU 推理运行时,官方文档未要求单独安装 CUDA Toolkit;仅需满足上面的 NVIDIA 驱动版本要求。 https://docs.ollama.com/windows、https://docs.ollama.com/gpu
依赖(Linux 脚本) 安装脚本要求已安装 curl awk grep sed tee xargs;解压新版 .tar.zst 还需要 zstd(Debian/Ubuntu:sudo apt-get install zstd)。 https://ollama.com/install.sh 第 120、137–143 行
磁盘空间(程序本体) 官方 Windows 文档:安装二进制约 4GB,模型另计。 https://docs.ollama.com/windows
磁盘空间(模型权重) 官方模型库按标签给出体积与上下文窗口。示例:qwen3:8b-q4_K_M 为 5.2GB / 40K 上下文;deepseek-r1:7b(默认蒸馏 Q4_K_M)为 4.7GB / 128K 上下文;其余模型体积以 https://ollama.com/library/<模型名>/tags 为准。 https://ollama.com/library/qwen3/tags;https://ollama.com/library/deepseek-r1/tags

RTX 3070 8GB 显存参考选型(标签与体积来自官方模型库 tags 页面):

用途 模型标签 官方标签体积 / 上下文 说明
8GB 首选(通用对话/推理) qwen3:8b(拉取默认量化,对应 qwen3:8b-q4_K_M) 5.2GB / 40K 官方 tags 页 qwen3:8b-q4_K_M 行;8GB 显存需把上下文控制在较小档位(见 01.4 配置表 num_ctx / OLLAMA_CONTEXT_LENGTH)。
8GB 推理模型 deepseek-r1:7b 4.7GB / 128K 官方 tags 页;上下文实际占用受显存限制,建议配合较小 num_ctx。
8GB 稳妥降级 qwen3:4b、qwen3:1.7b、qwen3:0.6b、deepseek-r1:1.5b 体积见官方 tags 页 显存吃紧、内存偏小或希望提速时依次降级;具体体积以 https://ollama.com/library/qwen3/tags 与 https://ollama.com/library/deepseek-r1/tags 为准。
24GB 可选 qwen3:14b、qwen3:30b-a3b(MoE)、deepseek-r1:14b 等 体积见官方 tags 页 RTX 4090 24GB 可加载;qwen3:32b、deepseek-r1:32b 等大模型需结合量化标签与显存实测。

01.4 最详细部署步骤(Windows 原生 与 WSL2 两种视角)

01.4.1 依赖安装

A. Windows 10/11 原生

  1. 确认系统为 Windows 10 22H2 或更新(设置 → 系统 → 关于 → 版本)。
  2. NVIDIA 显卡驱动:Windows 官方系统要求 551.61 或更新(https://docs.ollama.com/windows);GPU 支持页通用口径为驱动 ≥550,算力 5.0–6.2 的老卡需 570+(https://docs.ollama.com/gpu);RTX 30/40 系建议安装当前最新 Game Ready / Studio 驱动,可在 NVIDIA 控制面板或 nvidia-smi 中查看驱动版本。
  3. 官方安装包内置 GPU 推理运行时,官方文档未要求单独安装 CUDA Toolkit。

B. WSL2(Ubuntu 24.04)

  1. Windows 已启用 WSL2,发行版内核匹配 *icrosoft*WSL2(WSL1 不受支持,可在 PowerShell 执行 wsl --set-version Ubuntu-24.04 2 转换)。
  2. NVIDIA GPU 直通由 Windows 侧 NVIDIA 驱动提供;进入 WSL2 后执行 nvidia-smi,能看到显卡并显示 CUDA Version 即直通成功(官方安装脚本正是用 nvidia-smi | grep -o "CUDA Version: [0-9]*\.[0-9]*" 判断 GPU 是否可用,见 install.sh 第 254–257 行)。
  3. 在 Ubuntu 内安装脚本所需基础工具:
sudo apt-get update
sudo apt-get install -y curl awk grep sed tee xargs zstd

提示:若要让 WSL2 内的 systemd 服务自动管理 Ollama,需先在 /etc/wsl.conf 中启用 systemd(官方安装脚本对“systemd 未运行的 WSL2”会给出链接 https://learn.microsoft.com/en-us/windows/wsl/systemd#how-to-enable-systemd);不启用 systemd 时可手动 ollama serve 启动。

01.4.2 项目下载 / 安装(两条官方路径)

路径一:Windows 原生官方安装包

  • 图形化安装包(官方下载页 https://ollama.com/download):
  • 安装包直链:https://ollama.com/download/OllamaSetup.exe(2026-10-25 核验 HTTP 200)。
  • 下载后双击安装;安装目录为 %LOCALAPPDATA%\Programs\Ollama(官方排错文档给出该路径),安装器会把 ollama 加入用户 PATH。
  • 官方 PowerShell 一键脚本(来源:https://docs.ollama.com/windows 与 https://ollama.com/install.ps1):
# 安装最新稳定版(PowerShell)
irm https://ollama.com/install.ps1 | iex

# 可选:指定版本 / 指定安装目录(环境变量机制来自脚本头部官方示例;版本号取当前最新 release)
$env:OLLAMA_VERSION = "0.40.11"; irm https://ollama.com/install.ps1 | iex
$env:OLLAMA_INSTALL_DIR = "D:\Ollama"; irm https://ollama.com/install.ps1 | iex

路径二:Linux / WSL2 官方一键脚本(来源:https://docs.ollama.com/linux、https://ollama.com/install.sh)

# 安装最新稳定版(脚本自动识别 amd64 / arm64、下载 .tar.zst、创建 ollama 用户与 systemd 服务)
curl -fsSL https://ollama.com/install.sh | sh

# 可选:指定历史版本(官方 FAQ “Installing older or pre-release versions on Linux” 示例)
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.5.7 sh

脚本官方行为(源码核对):

  • 下载 https://ollama.com/download/ollama-linux-${ARCH}.tar.zst 解压到系统二进制目录,软链到 /usr/local/bin/ollama;
  • 创建系统用户 ollama,加入 render、video 组;
  • 写入 systemd 服务 /etc/systemd/system/ollama.service,ExecStart=ollama serve、Restart=always、RestartSec=3;
  • 安装成功后提示 API 位于 127.0.0.1:11434。

安装完成后,新开终端执行 ollama --version 确认客户端可用;Linux 下服务状态:

systemctl status ollama          # 查看服务状态(官方 Linux 文档命令)
journalctl -e -u ollama           # 官方 Linux 日志查看命令(最新日志)

01.4.3 模型 / 权重下载(官方链接 + 国内加速与离线方案)

A. 官方直连拉取(官方模型库 https://ollama.com/library)

# 拉取并运行 Qwen3 8B(官方库标签 qwen3:8b)
ollama pull qwen3:8b

# 拉取 DeepSeek-R1 蒸馏 7B
ollama pull deepseek-r1:7b

# 直接运行(未拉取时会自动先下载)
ollama run qwen3:8b
  • 模型默认存储位置(官方 FAQ “Where are models stored?”):
  • Linux:/usr/share/ollama/.ollama/models
  • Windows:C:\Users\%username%\.ollama\models
  • macOS:~/.ollama/models

B. 代理环境变量(官方 FAQ “How do I use Ollama behind a proxy?”)

仅使用 HTTPS_PROXY 转发模型拉取;不要设置 HTTP_PROXY(Ollama 拉模型只走 HTTPS,设置 HTTP_PROXY 可能打断客户端到服务端的本地连接)。代理证书需安装为系统证书。

# Linux / WSL2(systemd 方式写入服务环境变量,见 01.4.4)
export HTTPS_PROXY=https://proxy.example.com:7890

C. 离线导入官方 GGUF(下载慢 / 无法访问官方仓库时的可验证替代方案)

Ollama 官方 “Importing a Model” 文档支持直接从本地 GGUF 文件创建模型:在 Modelfile 中用 FROM 指定本地 GGUF 绝对路径(或相对 Modelfile 的路径),分片模型用通配符 FROM ./model-*.gguf。来源:https://docs.ollama.com/import、https://docs.ollama.com/modelfile。

第 1 步:从 ModelScope 镜像下载官方 Qwen3 GGUF(镜像页 https://modelscope.cn/models/Qwen/Qwen3-8B-GGUF,2026-10-25 核验 200;文件体积与 Hugging Face 官方一致,Q4_K_M 为 5.03GB,详见 03 章):

# 安装 ModelScope SDK(官方文档:https://modelscope.ai/docs/Models/Download-Model)
pip install modelscope

# 旧版 SDK CLI(官方文档:--model 仓库 ID,--include 文件名通配,--cache_dir 缓存目录)
modelscope download --model Qwen/Qwen3-8B-GGUF \
  --include 'Qwen3-8B-Q4_K_M.gguf' --cache_dir ./qwen3-gguf

# 新版 modelscope-hub CLI(--local-dir 直存目录;--include 通配过滤)
# modelscope download Qwen/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf --local-dir ./qwen3-gguf

第 2 步:新建 Modelfile(示例,路径按实际修改;PARAMETER num_ctx、SYSTEM 指令格式来自官方 Modelfile 参考 https://docs.ollama.com/modelfile):

# Modelfile(离线导入本地 GGUF)
# 本地 GGUF 绝对路径(官方要求:绝对路径,或相对本 Modelfile 的路径)
FROM /home/user/models/qwen3-gguf/Qwen3-8B-Q4_K_M.gguf

# 上下文窗口(8GB 显存建议先设小一些,例如 8192)
PARAMETER num_ctx 8192

# 系统提示词
SYSTEM """You are a helpful, concise assistant."""

第 3 步:创建并运行本地模型:

ollama create qwen3-8b-local -f ./Modelfile
ollama run qwen3-8b-local

# 查看模型实际使用的 Modelfile(官方命令)
ollama show --modelfile qwen3-8b-local

说明:离线导入只完成“权重挂载”,Ollama 不会在导入时对 GGUF 重新量化(官方 Importing a Model 文档明确说明量化需使用外部工具,如 llama.cpp 的 llama-quantize,链接 https://github.com/ggml-org/llama.cpp/tree/master/tools/quantize)。

01.4.4 关键配置(环境变量 / 配置项表)

下列变量均来自官方 FAQ “How do I configure Ollama server?” 及各专项 FAQ 页面;修改后需重启 Ollama 服务生效。

变量 / 配置项 含义 默认值 / 官方取值 示例值 出处
OLLAMA_HOST 服务监听地址与端口 默认 127.0.0.1:11434;本机之外访问需改为 0.0.0.0:11434 0.0.0.0:11434 FAQ “How can I expose Ollama on my network?”
OLLAMA_MODELS 模型存储目录 Linux /usr/share/ollama/.ollama/models;Windows C:\Users\%username%\.ollama\models;macOS ~/.ollama/models /data/ollama/models FAQ “Where are models stored?”
OLLAMA_CONTEXT_LENGTH 全局默认上下文窗口(token) 动态默认:可用显存 <24GiB 为 4K;24–48GiB 为 32K;≥48GiB 为 256K(来源 https://docs.ollama.com/context-length) 8192 https://docs.ollama.com/context-length;FAQ
OLLAMA_MAX_LOADED_MODELS 并发常驻模型上限 3 × GPU 数量;纯 CPU 为 3 2 FAQ “How does Ollama handle concurrent requests?”
OLLAMA_NUM_PARALLEL 单模型并行请求数;内存按 NUM_PARALLEL × CONTEXT_LENGTH 扩张 1 1 同上
OLLAMA_MAX_QUEUE 忙碌时最大排队请求数,超出返回 503 512 512 同上
OLLAMA_KEEP_ALIVE 模型空闲后驻留内存时长;支持 10m、24h、秒数、-1 常驻、0 响应后立即卸载 默认 5 分钟 30m 或 -1 FAQ “How do I keep a model loaded in memory?”
OLLAMA_FLASH_ATTENTION 强制开启 / 关闭 Flash Attention;后端与设备支持时自动启用 后端支持时自动 1 FAQ “How can I enable Flash Attention?”
OLLAMA_KV_CACHE_TYPE KV 缓存量化类型:f16(默认,高精度高占用)、q8_0(约一半内存,精度损失很小,官方推荐替代 f16 时使用)、q4_0(约四分之一内存) f16 q8_0 FAQ “How can I set the quantization type for the K/V cache?”
OLLAMA_ORIGINS 允许跨域访问的来源;默认允许 127.0.0.1、0.0.0.0;浏览器扩展需显式放行 127.0.0.1,0.0.0.0 chrome-extension://*,moz-extension://*,safari-web-extension://* FAQ “How can I allow additional web origins?”
OLLAMA_DEBUG 开启详细调试日志 关闭 1 https://docs.ollama.com/troubleshooting
OLLAMA_TMPDIR 临时可执行文件目录;系统 /tmp 挂载 noexec 时改到用户可写目录 系统临时目录 /usr/share/ollama/ Troubleshooting “Linux tmp noexec”
OLLAMA_LLM_LIBRARY 强制指定后端推理库(绕过自动探测),如 cpu、cpu_avx、cpu_avx2、cuda_v11、rocm_v6 等 自动探测 cpu_avx2 Troubleshooting “Experimental LLM Library Override”
OLLAMA_NO_CLOUD 禁用 Ollama 云功能(云端模型、联网搜索);也可在 ~/.ollama/server.json 写 "disable_ollama_cloud": true 默认开启云功能 1 FAQ “How do I disable Ollama’s cloud features?”
HTTPS_PROXY 模型拉取代理 无 https://proxy.example.com:7890 FAQ “How do I use Ollama behind a proxy?”

设置环境变量的官方方式(FAQ “How do I configure Ollama server?”):

  • Linux / WSL2(systemd):sudo systemctl edit ollama.service,在 [Service] 段加入:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"
Environment="OLLAMA_KV_CACHE_TYPE=q8_0"

然后:

sudo systemctl daemon-reload
sudo systemctl restart ollama
  • Windows:先从托盘退出 Ollama → 设置(Win11)/ 控制面板(Win10) 搜索“环境变量” → 编辑用户账户的 OLLAMA_HOST、OLLAMA_MODELS 等 → 保存后从开始菜单重新启动 Ollama(Windows 继承用户与系统环境变量)。
  • 前台手动启动时临时生效:
OLLAMA_HOST=0.0.0.0:11434 OLLAMA_DEBUG=1 ollama serve

01.4.5 启动

  • Windows 原生:安装后托盘常驻,后台服务自动运行;命令行可直接 ollama run <模型名>。
  • Linux / WSL2(systemd):
sudo systemctl enable --now ollama     # 启用并启动服务
ollama ps                               # 查看当前已加载模型与 GPU/CPU 占用
  • 手动前台启动(调试用):
ollama serve
# 官方启动日志显示:Ollama 正在运行,监听 http://127.0.0.1:11434

01.5 使用方法

01.5.1 启动方式

方式 命令 / 入口 说明
命令行对话 ollama run <模型名> 进入交互式 REPL;模型未下载时自动拉取。
后台服务 ollama serve 启动 HTTP 服务,默认 http://127.0.0.1:11434;桌面版由安装器自动启动。
命令行一次性提问 ollama run <模型名> "问题" 非交互式,输出后退出。
集成启动 ollama launch(交互选择);ollama launch claude;ollama launch claude --model qwen3.5;ollama launch droid --config 官方 CLI 文档 “Launch integrations”,配置并启动外部集成应用(模型名沿用官方示例)。

01.5.2 命令行操作步骤(带示例)

官方 CLI 参考:https://docs.ollama.com/cli。

# 1. 拉取模型
ollama pull qwen3:8b

# 2. 交互式对话(进入后直接输入文字;多行用 """ 包裹)
ollama run qwen3:8b

# 3. REPL 内常用斜杠命令(官方 FAQ 与官方 Quickstart 文档)
>>> /set parameter num_ctx 8192      # 当次会话设置上下文长度(FAQ “How can I specify the context window size?”)
>>> /bye                              # 退出会话(Quickstart “Run a model locally”:Type `/bye` to leave.)
# 多行输入:用三引号 """ 包裹(官方 CLI 参考 “Multiline input”)

# 4. 列出已安装模型
ollama ls

# 5. 查看正在内存中运行的模型(PROCESSOR 列显示 100% GPU / 100% CPU / 混合占比)
ollama ps

# 6. 卸载模型、释放显存
ollama stop qwen3:8b

# 7. 删除本地模型
ollama rm qwen3:8b

# 8. 查看模型 Modelfile / 详情
ollama show --modelfile qwen3:8b

01.5.3 参数说明表

命令 / 参数 作用 官方示例 出处
ollama run <model> 加载并进入对话;模型缺失时自动拉取 ollama run gemma4 CLI 参考 “Run a model”
ollama run <model> "prompt" 一次性提问 ollama run gemma4 "What's in this image? /path/to.png" CLI 参考 “Multimodal models”
ollama pull <model> 仅下载模型到本地 ollama pull gemma4 CLI 参考 “Download a model”
ollama ls 列出本地模型 ollama ls CLI 参考 “List models”
ollama ps 列出正在运行(驻留内存)的模型 ollama ps FAQ “How can I tell if my model was loaded onto the GPU?”
ollama stop <model> 立即从内存卸载模型 ollama stop gemma4 FAQ “How do I keep a model loaded in memory?”
ollama rm <model> 删除本地模型文件 ollama rm gemma4 CLI 参考 “Remove a model”
ollama create -f <Modelfile> 由 Modelfile 创建自定义模型 ollama create -f Modelfile CLI 参考 “Create a customized model”
ollama serve 启动 Ollama 服务;ollama serve --help 可查看全部环境变量 ollama serve CLI 参考 “Start Ollama”
/set parameter num_ctx <n> REPL 内设置上下文 token 数 /set parameter num_ctx 4096 FAQ “How can I specify the context window size?”
API num_ctx(options) 请求级上下文设置 "options": {"num_ctx": 4096} 同上
API keep_alive 模型驻留时长:时长串 / 秒数 / -1 常驻 / 0 立即卸载 {"model":"llama3.2","keep_alive":-1} FAQ “How do I keep a model loaded in memory?”

HTTP API 与 OpenAI 兼容接口(官方 https://docs.ollama.com/api/introduction):

接口 本地 Base URL 说明
Ollama 原生 API http://localhost:11434/api 端点:POST /api/generate、POST /api/chat、POST /api/embed、GET /api/tags、GET /api/ps、POST /api/show、POST /api/create、POST /api/copy、POST /api/pull、POST /api/push、DELETE /api/delete、GET /api/version。
OpenAI 兼容接口 http://localhost:11434/v1 官方 “OpenAI compatibility” 页面 https://docs.ollama.com/api/openai-compatibility;可被 OpenAI SDK 与兼容 OpenAI 的前端直接接入。
Anthropic 兼容 http://localhost:11434 客户端自动追加 /v1/messages。

01.5.4 端到端示例(输入 → 命令 → 输出)

场景:RTX 3070 8GB 笔记本,离线环境,用 01.4.3 第 C 步导入的 qwen3-8b-local 完成一次对话,并通过 OpenAI 兼容接口调用。

第 1 步:确认模型已导入

$ ollama ls
NAME                ID              SIZE      MODIFIED
qwen3-8b-local:latest   <hash>      5.03 GB    2 minutes ago

第 2 步:命令行提问(输入 → 命令)

$ ollama run qwen3-8b-local "用三句话解释什么是量化(quantization),面向新手。"

输出(官方 API 字段结构示意,实际文本由模型生成):

量化就是把模型里原本高精度的数字(如 16 位浮点数)压缩成更低位数(如 4 位整数)来存储和计算。
这样模型文件更小、更省显存,普通电脑也能跑起来;代价是回答质量可能有轻微下降,需要在体积和效果之间权衡。
常见档位有 Q4_K_M、Q5_K_M、Q6_K、Q8_0 等,数字越小体积越小、速度越快。

第 3 步:原生 REST API 调用(官方 README “REST API” 示例,模型名替换为本地模型):

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3-8b-local",
  "messages": [{"role": "user", "content": "用三句话解释什么是量化(quantization),面向新手。"}],
  "stream": false,
  "options": {"num_ctx": 8192}
}'

返回(结构字段来自官方 /api/chat 文档;message.content 为模型回答):

{
  "model": "qwen3-8b-local",
  "message": {
    "role": "assistant",
    "content": "量化就是把模型里原本高精度的数字……(同上模型输出)"
  },
  "done": true,
  "prompt_eval_count": 18,
  "eval_count": 96
}

第 4 步:OpenAI 兼容接口调用(Base URL http://localhost:11434/v1,官方 https://docs.ollama.com/api/openai-compatibility):

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3-8b-local",
    "messages": [{"role": "user", "content": "你好,介绍一下你自己。"}]
  }'

01.6 常见坑(现象 + 原因 + 解决)

  1. 现象:WSL2 内安装 Ollama 或 ollama pull 模型时网络极慢、经常中断。 - 原因:官方 FAQ “Why is networking slow in WSL2 on Windows 10?” 指出,Windows 10 上 vEthernet (WSL) 适配器的 Large Send Offload (LSOv2) 会影响安装与模型下载。 - 解决:控制面板 → 网络和 Internet → 查看网络状态和任务 → 更改适配器设置 → vEthernet (WSL) 属性 → 配置 → 高级,将 Large Send Offload Version 2 (IPv4) 与 Large Send Offload Version 2 (IPv6) 均禁用后重启 WSL。

  2. 现象:模型只跑在 CPU 上,ollama ps 显示 100% CPU 或很大比例 CPU/GPU 混合。 - 原因:NVIDIA 驱动过旧或 GPU 发现失败(官方 Troubleshooting “NVIDIA GPU Discovery” 给出错误码含义:3 未初始化、46 设备不可用、100 无设备、999 未知);WSL2 下 nvidia-smi 看不到显卡时 Ollama 同样无法使用 GPU。 - 解决:先在 Windows 侧升级 NVIDIA 驱动到 ≥550;WSL2 内执行 nvidia-smi 验证直通;Linux 容器场景可执行 sudo nvidia-modprobe -u、重载 nvidia_uvm 驱动(sudo rmmod nvidia_uvm && sudo modprobe nvidia_uvm)或重启;查看日志 journalctl -e -u ollama,必要时 OLLAMA_DEBUG=1 获取 GPU 发现细节。

  3. 现象:修改了 OLLAMA_HOST、OLLAMA_MODELS 等变量后不生效。 - 原因:Windows 桌面版需先从托盘退出再重启才会继承新的用户环境变量;Linux systemd 服务需 daemon-reload 并重启;变量写错位置(如只在当前 shell export 但服务由 systemd 拉起)不生效。 - 解决:按 01.4.4 官方方式设置:Windows 退出托盘后重启;Linux 用 sudo systemctl edit ollama.service 写 Environment= 后 systemctl daemon-reload && systemctl restart ollama。

  4. 现象:模型下载到一半磁盘报错 / 空间不足。 - 原因:默认模型目录在系统盘(Windows C:\Users\%username%\.ollama\models;Linux /usr/share/ollama/.ollama/models),大模型(如 Q8_0、32B 级)体积可达数十 GB。 - 解决:设置 OLLAMA_MODELS 指向大容量目录;Linux 标准安装下需把目录授权给 ollama 用户:sudo chown -R ollama:ollama <目录>(官方 FAQ “Where are models stored?”)。

  5. 现象:局域网其他设备 / 前端访问不到 Ollama。 - 原因:服务默认仅绑定 127.0.0.1:11434;浏览器跨域还受 OLLAMA_ORIGINS 限制。 - 解决:设置 OLLAMA_HOST=0.0.0.0:11434 后重启;跨域前端按需在 OLLAMA_ORIGINS 中放行来源(官方 FAQ “How can I expose Ollama on my network?” “How can I allow additional web origins?”)。

  6. 现象:/tmp 所在分区挂载了 noexec,Ollama 启动失败或无法解压临时运行库。 - 原因:官方 Troubleshooting “Linux tmp noexec”:临时可执行文件目录不可执行。 - 解决:设置 OLLAMA_TMPDIR 到 ollama 用户可写且带执行权限的目录,例如 OLLAMA_TMPDIR=/usr/share/ollama/。

  7. 现象:代理环境下模型拉取失败,或本地客户端连不上服务。 - 原因:FAQ 明确:模型拉取只走 HTTPS,应配置 HTTPS_PROXY;设置 HTTP_PROXY 会打断本地客户端与服务端连接。 - 解决:仅设置 HTTPS_PROXY 并安装代理根证书为系统证书;Docker 场景用 -e HTTPS_PROXY=https://proxy.example.com 传入容器。

01.7 本节来源清单

验证方式说明:web_fetch = 通过文档抓取工具实际打开;curl 200 = 命令行 HTTP 状态码核验;general_search = 搜索索引佐证。核验日期 2026-10-25。

# URL 用途 验证方式
1 https://github.com/ollama/ollama 官方仓库主页 curl 200(仓库页;README 与 LICENSE 经 raw 地址抓取核对)
2 https://github.com/ollama/ollama/blob/main/LICENSE MIT 许可证出处 web_fetch 打开 raw LICENSE,标题 MIT License;curl 200
3 https://raw.githubusercontent.com/ollama/ollama/main/LICENSE LICENSE 原始文件 web_fetch 实际读取全文
4 https://raw.githubusercontent.com/ollama/ollama/main/README.md README 命令、SDK、API 示例 curl 200,已下载本地核对
5 https://ollama.com 官方网站 curl 200
6 https://docs.ollama.com 官方文档站首页 curl 200
7 https://docs.ollama.com/cli CLI 命令参考(run/pull/ls/ps/stop/create/serve/launch) curl 200,已下载 HTML 提取核对
8 https://docs.ollama.com/faq 环境变量、模型目录、并发、KV 缓存、代理、WSL2 网络等 FAQ curl 200,已下载 HTML 提取核对
9 https://docs.ollama.com/windows Windows 版本要求、安装目录、日志路径 curl 200,已下载核对
10 https://docs.ollama.com/linux Linux 安装与 systemd 说明 curl 200,已下载核对
11 https://docs.ollama.com/gpu NVIDIA 算力 / 驱动版本 / 支持显卡列表(RTX 3070、RTX 4090) curl 200,已下载核对
12 https://docs.ollama.com/context-length 动态默认上下文窗口(4K / 32K / 256K) curl 200,已下载核对
13 https://docs.ollama.com/troubleshooting 日志路径、GPU 发现错误码、noexec、LLM 库覆盖 curl 200,已下载核对
14 https://docs.ollama.com/import 本地 GGUF / 分片模型离线导入(FROM 指令) curl 200,已下载核对
15 https://docs.ollama.com/modelfile Modelfile 指令(FROM/PARAMETER/SYSTEM 等) curl 200,已下载核对
16 https://docs.ollama.com/api/introduction 原生 API / OpenAI / Anthropic 兼容 Base URL curl 200,已下载 .md 提取核对
17 https://docs.ollama.com/api/openai-compatibility OpenAI 兼容接口(/v1/chat/completions、/v1/completions、/v1/models、/v1/embeddings) curl 200,已下载 .md 核对
18 https://ollama.com/download 官方下载页 curl 200
19 https://ollama.com/download/OllamaSetup.exe Windows 官方安装包直链 curl 200(HEAD 跟随重定向)
20 https://ollama.com/install.sh Linux/macOS 官方一键脚本 curl 200,已下载 455 行源码核对
21 https://ollama.com/install.ps1 Windows 官方 PowerShell 脚本 curl 200,已下载 495 行源码核对
22 https://ollama.com/library 官方模型目录 curl 200
23 https://ollama.com/library/qwen3/tags qwen3:8b 等标签体积与上下文窗口 curl 200,已解析标签行核对
24 https://ollama.com/library/deepseek-r1/tags deepseek-r1:7b 等标签体积与上下文窗口 curl 200,已解析标签行核对
25 https://github.com/ollama/ollama/releases/tag/v0.40.11 最新 release 版本号与发布日期(2026-10-24) curl 200,页面 datetime="2026-10-24T00:30:13Z" 核对
26 https://github.com/ollama/ollama/releases 发布历史 curl 200
27 https://github.com/ollama/ollama-python 官方 Python SDK curl 200(README 链接)
28 https://github.com/ollama/ollama-js 官方 JavaScript SDK curl 200(README 链接)
29 https://github.com/ggml-org/llama.cpp/tree/master/tools/quantize 官方导入文档引用的量化工具 curl 200
30 https://modelscope.cn/models/Qwen/Qwen3-8B-GGUF 离线导入用官方 GGUF 国内镜像 curl 200,文件列表经 ModelScope API 核对
31 https://modelscope.ai/docs/Models/Download-Model ModelScope SDK / CLI 下载命令官方文档 general_search 命中官方文档,curl 200
32 https://learn.microsoft.com/en-us/windows/wsl/systemd WSL2 启用 systemd 官方指南(安装脚本引用链接) 官方安装脚本 install.sh 第 244 行引用
33 https://docs.ollama.com/quickstart Quickstart 本地运行与 REPL /bye 退出命令 curl 200,已下载 .md 第 “Run a model locally” 节核对
34 https://docs.ollama.com/api/anthropic-compatibility Anthropic 兼容 Base URL http://localhost:11434(客户端追加 /v1/messages) curl 200,已下载 .md 核对
35 https://docs.ollama.com/api/generate 原生 POST /api/generate 端点方法与请求字段 curl 200,已下载 .md 核对 OpenAPI 片段
36 https://docs.ollama.com/api/chat 原生 POST /api/chat 端点、message.content、done、prompt_eval_count、eval_count 字段 curl 200,已下载 .md 核对响应示例
37 https://docs.ollama.com/api/embed 原生 POST /api/embed 端点 curl 200,已下载 .md 核对
38 https://docs.ollama.com/api/tags 原生 GET /api/tags 模型列表响应字段(name、size、modified_at、digest) curl 200,已下载 .md 核对响应示例
39 https://docs.ollama.com/api/ps 原生 GET /api/ps 驻留模型列表 curl 200,已下载 .md 核对
40 https://docs.ollama.com/api/create 原生 POST /api/create 端点 curl 200,已下载 .md 核对
41 https://docs.ollama.com/api/copy 原生 POST /api/copy 端点 curl 200,已下载 .md 核对
42 https://docs.ollama.com/api/pull 原生 POST /api/pull 端点 curl 200,已下载 .md 核对
43 https://docs.ollama.com/api/push 原生 POST /api/push 端点 curl 200,已下载 .md 核对
44 https://docs.ollama.com/api/delete 原生 DELETE /api/delete 端点 curl 200,已下载 .md 核对
45 https://docs.ollama.com/api-reference/show-model-details 原生 POST /api/show 端点 curl 200,已下载 .md 核对
46 https://docs.ollama.com/api-reference/get-version 原生 GET /api/version 端点 curl 200,已下载 .md 核对

02. llama.cpp(llama-server / llama-cli / llama-quantize)—— 纯 C/C++ 的高效本地 LLM 推理引擎

适用环境:Windows 10/11 原生、Windows 10/11 + WSL2(Ubuntu 24.04)、NVIDIA RTX 3070 8GB / RTX 4090 24GB,以及 Linux 云服务器。 信息口径:本章命令、编译参数、工具名、参数与端点均来自 llama.cpp 官方仓库 README、docs/build.md、docs/models.md、tools/server/README.md、tools/cli/README.md、tools/quantize/README.md 与官方 release 资产清单;核验日期 2026-10-25。

02.1 项目定位与基本信息

项目 内容
一句话定位 用纯 C/C++ 实现、基于 ggml 的 LLM/VLM 推理库与命令行工具集,支持 1.5-bit 到 8-bit 量化、CUDA/Vulkan/Metal/HIP 等多后端、CPU+GPU 混合推理,并自带 OpenAI 兼容 HTTP 服务器与内置 Web UI。
开源许可 MIT License。出处:官方 README 徽章 [License: MIT](https://opensource.org/licenses/MIT)(README 徽章);仓库 LICENSE 文件 https://github.com/ggml-org/llama.cpp/blob/master/LICENSE(原始文件 https://raw.githubusercontent.com/ggml-org/llama.cpp/master/LICENSE,已实际打开核对,标题为 MIT License)。
官方 GitHub 仓库 https://github.com/ggml-org/llama.cpp
官方文档 / 站点 https://github.com/ggml-org/llama.cpp/tree/master/docs (构建、模型、Docker、多 GPU 等官方文档索引);安装引导站 https://llama.app 。
版本信息 截至 2026-10-25:官方语义化稳定 release v0.7.0(发布于 2026-10-15,来源 https://github.com/ggml-org/llama.cpp/releases/tag/v0.7.0,页面 datetime="2026-10-15T17:13:19Z" 核验);预编译二进制发布在 Nightly 标签(b*),最新已核验资产为 b11874(发布于 2026-10-25,来源 https://github.com/ggml-org/llama.cpp/releases/tag/b11874)。README 徽章区分两类:Release 过滤 v*,Nightly 过滤 b*。
官方模型生态 兼容 Hugging Face 上所有 GGUF 模型:https://huggingface.co/models?library=gguf&sort=trending(来源 docs/models.md)。

02.2 官方图片

下图为官方 README 内嵌的两张官方截图(非 AI 生成、非第三方图):左为 llama cli 的 VLM 会话界面,右为 llama serve 内置 Web UI。

图 1:llama cli 命令行会话(官方 README 截图)

llama cli 命令行会话官方截图

  • 图片来源 URL:https://github.com/user-attachments/assets/88726b48-1713-48aa-a525-95a02e78afc4(README 原文 alt:VLM session with 'llama cli',2026-10-25 curl -L 下载)。
  • 本地路径:https://zhouruolin.cn/upload/02_llamacpp_cli_screenshot.png;file 校验:PNG image data, 2782 x 2014, 8-bit/color RGBA,317,242 字节(>20KB)。

图 2:llama serve 内置 Web UI(官方 README 截图)

llama serve 内置 Web UI 官方截图

  • 图片来源 URL:https://github.com/user-attachments/assets/b402f972-2e32-4def-8771-8d849f08cf2e(README 原文 alt:Built-in web UI against 'llama serve' running Qwen 3.6,2026-10-25 curl -L 下载)。
  • 本地路径:https://zhouruolin.cn/upload/02_llamacpp_webui_screenshot.png;file 校验:PNG image data, 2784 x 1916, 8-bit/color RGBA,688,668 字节(>20KB)。

02.3 环境要求

来源:docs/build.md(CPU/CUDA 构建与计算能力表)、README.md(支持后端、量化档位、CPU+GPU 混合推理)、tools/quantize/README.md(量化工具内存/磁盘要求)、tools/server/README.md(默认端口与后端能力)。

类别 官方要求 / 说明 出处
操作系统(Windows 预编译) Windows x64(ARM64 另有对应包);预编译包直接运行,无需自行编译。 https://github.com/ggml-org/llama.cpp/releases(b11874 资产清单);docs/build.md Windows 构建节
操作系统(Linux / WSL2 源码编译) 主流 Linux 发行版;WSL2(Ubuntu 24.04)内完成 CUDA 源码编译;CUDA 版本由 WSL2 内安装的 CUDA Toolkit 决定。 docs/build.md CUDA 节;https://developer.nvidia.com/cuda-toolkit
GPU 与显存 NVIDIA GPU 使用 CUDA 后端;官方构建示例列出 GeForce RTX 4090 = 计算能力 8.9、GeForce RTX 3070 = 8.6、RTX 3080 Ti = 8.6。README 明确支持 CPU+GPU 混合推理:超出总显存的模型可部分卸载到 CPU。 docs/build.md “Override Compute Capability Specifications”;README.md Description
显存 官方未公布固定下限;模型权重 + KV 缓存需放入显存,放不下的层自动留在 CPU(-ngl 控制卸载层数)。8GB 显存建议 7B–8B 的 Q4_K_M 级;24GB 显存可跑 14B–32B 量化模型(具体体积见 03 章 Qwen3 GGUF 表)。 tools/server/README.md -ngl/--gpu-layers 参数;README “CPU+GPU hybrid inference”
内存 推理:权重 + KV 缓存占用系统内存;量化工具 llama-quantize 会把模型整体载入内存,原始精度(F32/BF16)模型必须先有足够 RAM 与磁盘存放中间文件。 tools/quantize/README.md “Memory/Disk Requirements”
依赖(预编译 Windows CUDA 包) 工作流将 ggml-cuda.dll 与 CUDA 运行时(cudart64_*、cublas64_*、cublasLt64_*)分别打包,在 release 合并步骤并入最终 zip;系统仍需有匹配的 NVIDIA 显卡驱动。 .github/workflows/release.yml windows-cuda 作业第 1193–1291 行
依赖(源码编译) Git、CMake、C++ 编译器;CUDA 后端需安装 CUDA Toolkit(含 nvcc);可选 Ninja 并行构建;需要 HTTPS/TLS 时安装 OpenSSL 开发库(Debian/Ubuntu:sudo apt-get install libssl-dev)。 docs/build.md “CPU Build”“CUDA”节;README “Get the Code” git clone https://github.com/ggml-org/llama.cpp
依赖(模型转换 / 量化) Python 环境并安装仓库 requirements.txt:python3 -m pip install -r requirements.txt(或 uv pip install -r requirements.txt --index-strategy unsafe-best-match)。 tools/quantize/README.md “Overview”
磁盘空间 程序本体很小;占用主要是 GGUF 模型权重。官方参考(tools/quantize/README.md,Llama-3.1-8B):原始 32.1 GB → Q4_K_M 4.9 GB;同模型参考表 Q4_K_M 4.58 GiB、Q5_K_M 5.33 GiB、Q6_K 6.14 GiB、Q8_0 7.95 GiB、F16 14.96 GiB。 tools/quantize/README.md “Quantization / Memory-Disk Requirements”

RTX 3070 8GB 与 RTX 4090 24GB 编译参数对照(来源:docs/build.md “Override Compute Capability Specifications”,官方示例即列出 RTX 3070=8.6、RTX 4090=8.9):

机器 CUDA 架构(Compute Capability) 推荐 CMAKE_CUDA_ARCHITECTURES
RTX 3070 8GB 86 86
RTX 4090 24GB 89 89
两机通用 / 交叉编译 同时覆盖 "86;89"

02.4 最详细部署步骤(Windows 预编译 与 WSL2 源码编译 两种视角)

02.4.1 依赖安装

A. Windows 10/11 原生(预编译 CUDA 包路线)

  1. 安装 NVIDIA 显卡最新驱动,设备管理器 / nvidia-smi 确认显卡被识别。
  2. 无需安装 Visual Studio、CMake 或 CUDA Toolkit(预编译包自带后端运行时)。
  3. 准备模型目录,例如 D:\llm\models\,用于存放 GGUF 文件。

B. WSL2(Ubuntu 24.04)源码编译路线

  1. Windows 侧安装 NVIDIA 驱动;进入 WSL2 执行 nvidia-smi,确认能看到显卡与 CUDA Version(WSL2 直通由 Windows 驱动提供,不要在 Windows 上装 CUDA Toolkit 来给 WSL2 编译用,编译工具链要装在 WSL2 内)。
  2. 在 WSL2 内安装 CUDA Toolkit(含 nvcc,官方下载入口 https://developer.nvidia.com/cuda-toolkit),安装后 nvcc --version 可执行。
  3. 安装编译基础工具(Git、CMake、C++ 工具链、Ninja;Debian/Ubuntu 常用命令):
sudo apt-get update
sudo apt-get install -y git cmake g++ build-essential ninja-build libssl-dev

说明:上面的 apt-get 包名是 Ubuntu 通用开发工具链;llama.cpp 官方 docs/build.md 只规定了 git clone + CMake 构建流程与 CUDA Toolkit 前提,未直接给出该 apt-get 清单。

02.4.2 项目下载 / 安装(预编译包、一键脚本、源码三种官方方式)

方式一:Windows 官方预编译包(Nightly b11874,2026-10-25 资产清单核验)

  • 发布页:https://github.com/ggml-org/llama.cpp/releases
  • NVIDIA CUDA 12.4 x64 包直链(HTTP 200 已核验): https://github.com/ggml-org/llama.cpp/releases/download/b11874/llama-b11874-bin-win-cuda-12.4-x64.zip
  • 同清单备选:CPU 包 llama-b11874-bin-win-cpu-x64.zip、CUDA 13.4 包 llama-b11874-bin-win-cuda-13.4-x64.zip、Vulkan 包 llama-b11874-bin-win-vulkan-x64.zip。

下载解压后,在解压目录内查找以下官方 CMake 目标对应的可执行文件(来源:各 tools/*/CMakeLists.txt):

工具 Windows 可执行文件 官方 CMake 目标 / 文档
HTTP 服务器 llama-server.exe tools/server/CMakeLists.txt:set(TARGET llama-server); add_executable(${TARGET} main.cpp);tools/server/README.md Build 节
命令行对话 llama-cli.exe tools/cli/CMakeLists.txt:set(TARGET llama-cli); add_executable(${TARGET} main.cpp);tools/cli/README.md
模型量化 llama-quantize.exe tools/quantize/CMakeLists.txt:set(TARGET llama-quantize); add_executable(${TARGET} main.cpp);tools/quantize/README.md

方式二:官方一键脚本(README Quick start,https://llama.app)

# Linux / macOS(README 原文:curl -LsSf https://llama.app/install.sh | sh)
curl -LsSf https://llama.app/install.sh | sh
# Windows PowerShell(README 原文:irm https://llama.app/install.ps1 | iex)
irm https://llama.app/install.ps1 | iex

脚本安装的是统一命令 llama,子命令为 llama cli 与 llama serve(README 示例:llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF、llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF)。

方式三:WSL2 / Linux 源码编译(官方 docs/build.md)

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

# CPU 构建(官方 CPU Build 命令)
cmake -B build
cmake --build build --config Release

# CUDA 构建(官方 CUDA 节命令)
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

RTX 3070 / 4090 指定架构(官方 “Override Compute Capability Specifications”):

# 单卡 RTX 3070(86)
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="86"
cmake --build build --config Release -j"$(nproc)"

# 单卡 RTX 4090(89)
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="89"
cmake --build build --config Release -j"$(nproc)"

# 两机通用(86 + 89)
cmake -B build -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="86;89"
cmake --build build --config Release -j"$(nproc)"

只构建服务器目标(官方 tools/server/README.md Build 节):

cmake -B build
cmake --build build --config Release -t llama-server
# 产物:./build/bin/llama-server

可选:为覆盖所有 CUDA GPU(非原生机器)禁用原生优化:cmake -B build -DGGML_CUDA=ON -DGGML_NATIVE=OFF(docs/build.md “Non-Native Builds”)。需要 OpenSSL/SSL 支持时:cmake -B build -DLLAMA_OPENSSL=ON(tools/server/README.md “Build with SSL”)。

产物位置(官方文档):./build/bin/llama-server、./build/bin/llama-cli、./build/bin/llama-quantize。

02.4.3 模型 / 权重下载(官方链接 + 国内加速方案)

A. 官方 -hf 直连 Hugging Face(docs/models.md、tools/server/README.md -hf 参数)

# 官方 README Quick start 示例仓库;量化档大小写不敏感,默认 Q4_K_M
./build/bin/llama-cli -hf ggml-org/Qwen3.5-0.8B-GGUF
./build/bin/llama-server -hf ggml-org/Qwen3.5-0.8B-GGUF

B. 官方 MODEL_ENDPOINT 兼容端点(docs/models.md 原文:You can use the same CLI invocation to download from other sites, by pointing the MODEL_ENDPOINT environment variable to an endpoint compatible with the Hugging Face API.)

# 指向兼容 Hugging Face API 的镜像端点(端点需自行确认兼容性)
export MODEL_ENDPOINT=https://hf-mirror.com
./build/bin/llama-server -hf Qwen/Qwen3-8B-GGUF:Q4_K_M

说明:hf-mirror.com 为第三方国内镜像站(非 llama.cpp / Hugging Face 官方),MODEL_ENDPOINT 仅要求端点兼容 HF API;若镜像路径不兼容,改用下面的“手动下载 + 本地路径”方案最稳妥。

C. 手动下载 GGUF + 本地路径加载(离线 / 慢网络最稳妥方案)

  1. 在可访问渠道(浏览器、huggingface-cli 或 ModelScope 镜像,见 03 章)下载目标 .gguf,例如 Qwen3-8B-Q4_K_M.gguf。
  2. 用 -m/--model 指定本地文件(tools/server/README.md 参数表):
# Linux / WSL2
./build/bin/llama-server -m /home/user/models/Qwen3-8B-Q4_K_M.gguf --host 0.0.0.0 --port 8080

# Windows 预编译包
llama-server.exe -m models\Qwen3-8B-Q4_K_M.gguf -c 4096
  1. 走代理时,启动前导出 HTTPS_PROXY / HTTP_PROXY(tools/server/README.md “Running behind a proxy”:export HTTPS_PROXY=http://proxy.example.com:8080,NO_PROXY 与回环地址直连)。

D. 本地转 GGUF 与重新量化(官方 tools/quantize/README.md)

# 1) 安装 Python 依赖
python3 -m pip install -r requirements.txt

# 2) HF 模型转 BF16 GGUF(官方示例命令格式)
python convert_hf_to_gguf.py --outfile model-bf16.gguf --outtype bf16 --remote org/model

# 3) 量化为 Q4_K_M(官方新格式命令)
./build/bin/llama-quantize model-bf16.gguf model-Q4_K_M.gguf Q4_K_M

# 旧格式(官方 Quantization Examples 兼容写法,最后一位为线程数)
./llama-quantize input-model-f32.gguf q4_k_m 8

02.4.4 关键配置(参数 / 环境变量表)

下列参数全部来自 tools/server/README.md 与 tools/cli/README.md 自动生成的参数表;带 (env: ...) 的参数也可用同名 LLAMA_ARG_* 环境变量设置。命令行参数优先于环境变量(tools/server/README.md 注释:命令行与环境变量同时设置时,参数优先)。

参数 含义 默认值 / 取值 出处
-m, --model FNAME 本地模型文件路径 无 server/cli README Common params
-mu, --model-url MODEL_URL 模型下载 URL 未使用 同上
-hf, -hfr, --hf-repo <user>/<model>[:quant] Hugging Face 仓库与可选量化档;量化档大小写不敏感,默认 Q4_K_M,找不到则回退仓库第一个文件;可用 --no-mmproj 关闭多模态投影自动下载 未使用;默认量化 Q4_K_M server/cli README Common params
-hff, --hf-file FILE 指定 HF 文件名,覆盖 -hf 中的量化档 未使用 同上
-hft, --hf-token TOKEN HF 访问令牌;默认取 HF_TOKEN 环境变量 HF_TOKEN 同上
-ngl, --gpu-layers, --n-gpu-layers N 卸载到显存的最大层数;可取具体层数、auto、all auto server/cli README Common params
-sm, --split-mode {none,layer,row,tensor} 多 GPU 切分方式:none 单卡;layer(默认,分层+KV 流水线);row(按行切权重并行);tensor(权重+KV 并行,实验性) layer 同上
-dev, --device <dev1,dev2,..> 指定卸载设备;none 表示不卸载;--list-devices 列出可用设备 README 未声明默认值 server/cli README Common params
-mg, --main-gpu INDEX 主 GPU 编号(split-mode=none 时用哪张卡;row 时用于中间结果与 KV) 0 同上
-c, --ctx-size N 提示上下文长度;0 表示从模型元数据读取 0(模型默认) server/cli README Common params
-n, --predict, --n-predict N 最大生成 token 数;-1 无限 -1 同上
-b, --batch-size N 逻辑最大批大小 2048 同上
-ub, --ubatch-size N 物理最大批大小 512 同上
-t, --threads N 生成阶段 CPU 线程数 -1(自动) 同上
-tb, --threads-batch N 提示处理阶段线程数 同 --threads 同上
-fa, --flash-attn [on\|off\|auto] Flash Attention 开关 auto 同上
-ctk, --cache-type-k TYPE K 缓存类型:f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 f16 同上
-ctv, --cache-type-v TYPE V 缓存类型,取值同上 f16 同上
-p, --prompt PROMPT 起始提示词;系统提示词用 -sys 无 cli README Common params
-f, --file FNAME 含提示词的文件 无 同上
-sys, --system-prompt PROMPT 系统提示词(取决于聊天模板是否支持) 无 cli README CLI-specific params
--jinja, --no-jinja 是否使用 Jinja 聊天模板引擎 默认启用 server README Server-specific params;cli README CLI-specific params
--chat-template JINJA_TEMPLATE / --chat-template-file FILE 自定义 Jinja 聊天模板;默认取模型元数据模板 模型模板 同上
--host HOST 监听地址(逗号分隔多地址,或 .sock Unix 套接字) 127.0.0.1 server README Server-specific params
--port PORT 监听端口 9931 同上
-a, --alias STRING 模型别名(逗号分隔),供 API 使用;GET /v1/models 的 id 默认为模型文件路径 文件路径 同上
-np, --parallel N 服务器并行槽位数;-1 自动 -1 同上
-cb, --cont-batching, -nocb, --no-cont-batching 连续批处理(动态批处理) 默认启用 同上
--cors-origins ORIGINS 允许跨域来源;特殊值 localhost 仅放行本地来源 *(默认) 同上
--ui, --webui, --no-ui 是否启用内置 Web UI 默认启用 同上
--metrics 启用 Prometheus 兼容指标端点 关闭 同上
--api-key KEY API 访问密钥,可逗号分隔多个;环境变量 LLAMA_API_KEY 无 同上
--reasoning-format FORMAT 思考标签解析:none(保留在 message.content)、deepseek(放入 message.reasoning_content)、deepseek-legacy(两者兼有) auto 同上
-rea, --reasoning [on\|off\|auto] 聊天中是否使用推理 / 思考 auto(按模板检测) 同上
--temp, --temperature N 温度 0.80 server/cli README Sampling params
--top-k N Top-K 采样,0 关闭 40 同上
--top-p N Top-P 采样,1.0 关闭 0.95 同上
--min-p N Min-P 采样,0.0 关闭 0.05 同上
--presence-penalty N 重复存在惩罚 0.00 同上
--repeat-penalty N 重复序列惩罚 1.00 同上
--keep N 首轮提示词保留 token 数;-1 全部保留 0 同上
--context-shift / --no-context-shift 无限生成时是否滚动移位上下文(淘汰旧 token);--context-shift 开启滚动,--no-context-shift 关闭 默认 disabled(不移位,到达 -c 后停止生成) server/cli README 参数表

02.4.5 启动

Windows 预编译包(在解压目录下,PowerShell):

# 启动服务器,本地模型,监听 127.0.0.1:9931(默认)
.\llama-server.exe -m models\Qwen3-8B-Q4_K_M.gguf -c 4096

# 指定对外地址与端口、全层卸载到 GPU
.\llama-server.exe -m models\Qwen3-8B-Q4_K_M.gguf --host 0.0.0.0 --port 8080 -ngl 99 -c 4096

WSL2 / Linux 源码编译产物:

# 查看可用设备(官方 --list-devices)
./build/bin/llama-server --list-devices

# CUDA 服务器启动示例(官方 Docker 示例同参数族)
./build/bin/llama-server -m models/Qwen3-8B-Q4_K_M.gguf \
  --host 0.0.0.0 --port 8080 \
  --n-gpu-layers 99 -c 4096 -fa

# 命令行对话(官方 cli README 模式)
./build/bin/llama-cli -m models/Qwen3-8B-Q4_K_M.gguf --jinja --color -ngl 99 -c 4096

官方 Docker 路线(docs/docker.md、tools/server/README.md Docker 示例):

# CPU 镜像:仅含 llama-server
docker run -p 8080:8080 -v /path/to/models:/models ghcr.io/ggml-org/llama.cpp:server \
  -m models/7B/ggml-model.gguf -c 512 --host 0.0.0.0 --port 8080

# CUDA 镜像(CUDA 12 编译),需 --gpus all
docker run -p 8080:8080 -v /path/to/models:/models --gpus all \
  ghcr.io/ggml-org/llama.cpp:server-cuda \
  -m models/7B/ggml-model.gguf -c 512 --host 0.0.0.0 --port 8080 --n-gpu-layers 99

镜像清单(docs/docker.md):full(cli + completion + 转换/量化工具)、light(cli + completion)、server(仅 llama-server);后缀 -cuda(CUDA 12)、-cuda13、-rocm、-vulkan、-musa、-intel;基础镜像平台为 linux/amd64、linux/arm64,full/light/server 另提供 linux/s390x,部分后端镜像仅 linux/amd64,以 docs/docker.md 清单为准。

02.5 使用方法

02.5.1 启动方式

方式 命令 / 入口 说明
命令行交互 ./build/bin/llama-cli -m <模型>(Windows:llama-cli.exe) --jinja 默认启用;聊天模板默认取自模型元数据(tools/cli/README.md 参数表)。
HTTP 服务器 ./build/bin/llama-server -m <模型>(Windows:llama-server.exe) 默认 127.0.0.1:9931;内置 Web UI 默认开启,浏览器访问同一地址。
统一命令 llama cli ... / llama serve ... 官方一键脚本安装后的子命令形式(README Quick start)。
Docker ghcr.io/ggml-org/llama.cpp:server[-cuda] 官方 docs/docker.md 镜像。

02.5.2 界面 / 命令行操作步骤(带示例)

A. llama-cli 命令行对话(tools/cli/README.md;参数表见 02.4.4)

# 本地模型 + Jinja 模板 + 着色 + 全层 GPU 卸载 + Flash Attention + 8K 上下文
./build/bin/llama-cli \
  -m models/Qwen3-8B-Q4_K_M.gguf \
  --jinja --color \
  -ngl 99 -fa \
  -sm row \
  -c 8192 \
  --system-prompt "You are a concise assistant."

交互常用开关:

命令 / 参数 作用 出处
-co, --color [on\|off\|auto] 着色区分提示词与生成内容;默认 auto(输出到终端时启用) cli README CLI-specific params
-st, --single-turn 单轮对话后退出;首轮已带 --prompt 时不进入交互 同上
-mli, --multiline-input 允许多行粘贴 / 输入 同上
-sysf, --system-prompt-file FNAME 从文件读取系统提示词 同上
-o, --output, --output-file FNAME 输出到文件 同上
--show-timings, --no-show-timings 每轮响应后显示耗时统计 默认启用
--simple-io 基础 IO,兼容子进程与受限终端 同上
--server-base URL 连接已有服务器而不是新启动(示例 http://localhost:9931) 同上

B. llama-server 内置 Web UI 与 HTTP 接口(tools/server/README.md)

  1. 启动服务器(见 02.4.5)。
  2. 浏览器打开 http://127.0.0.1:9931/(自定义 --port 后用对应端口),使用内置 Web UI 对话。
  3. 其他前端(如 Open WebUI)通过 OpenAI 兼容接口接入:Base URL 填 http://<服务器IP>:<端口>/v1,API Key 任意填写(未启用 --api-key 时不校验)。 - 对接依据:llama.cpp 服务器提供 OpenAI 兼容 chat/completions 等路由(tools/server/README.md Features 与 “OpenAI-compatible API Endpoints”);Open WebUI README 明确支持接入任意 OpenAI 兼容 API:https://github.com/open-webui/open-webui。

02.5.3 服务端 API 端点表(tools/server/README.md “API Endpoints”)

端点 协议兼容性 说明
GET /health(/v1/health 同样可用) 健康检查 模型加载中返回 503 {"error": {"code":503,...}};就绪返回 200 {"status":"ok"}
POST /completion 非 OpenAI 兼容 给定 prompt 返回续写;OpenAI 客户端请用 /v1/completions
POST /embedding 非 OpenAI 兼容 文本向量;OpenAI 客户端请用 /v1/embeddings
GET /v1/models OpenAI 兼容 已加载模型信息;id 默认 -m 文件路径,可用 --alias 修改
POST /v1/completions OpenAI 兼容 补全接口,支持流式
POST /v1/chat/completions OpenAI 兼容 聊天接口,支持同步 / 流式;支持 response_format(JSON 对象 / JSON Schema)、chat_template_kwargs(如 {"enable_thinking":false})、reasoning_effort、reasoning_format、工具调用
POST /v1/responses OpenAI 兼容 Responses API
POST /v1/embeddings OpenAI 兼容 文本 / 多模态向量
POST /v1/rerank、/v1/reranking 重排序 需 --rerank 启用
--metrics 开启 Prometheus 指标监控端点

02.5.4 端到端示例(输入 → 命令 → 输出)

场景:RTX 3070 8GB,WSL2 源码编译 CUDA 版,本地 GGUF Qwen3-8B-Q4_K_M.gguf(体积见 03 章),启动 OpenAI 兼容服务器并完成一次对话。

第 1 步:启动服务器

cd ~/llama.cpp
./build/bin/llama-server \
  -m ~/models/Qwen3-8B-Q4_K_M.gguf \
  --host 0.0.0.0 --port 8080 \
  -ngl 99 -c 8192 -fa \
  --jinja --alias qwen3-8b

启动日志关键行(结构示意,tools/server/README.md 默认参数):监听 http://0.0.0.0:8080,模型全层卸载,上下文 8192,Web UI 开启。

第 2 步:健康检查

curl http://localhost:8080/health
# 就绪返回:{"status": "ok"}

第 3 步:OpenAI 兼容聊天请求(tools/server/README.md 官方 curl 示例格式)

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer no-key" \
  -d '{
    "model": "qwen3-8b",
    "messages": [
      {"role": "system", "content": "You are a concise assistant."},
      {"role": "user", "content": "用三句话介绍你自己。"}
    ]
  }'

返回(OpenAI 兼容结构,字段说明见 /v1/chat/completions 文档;content 为模型回答):

{
  "object": "chat.completion",
  "model": "qwen3-8b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "我是基于 Qwen3 系列的本地大模型,运行在 llama.cpp 推理引擎上。\n我的回答由本地显卡完成计算,不上传对话内容到云端。\n你可以直接在命令行或浏览器里向我提问。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 24, "completion_tokens": 66, "total_tokens": 90}
}

Python openai SDK 接入(官方 /v1/chat/completions 文档示例,Base URL 替换为本机地址):

import openai

client = openai.OpenAI(
    base_url="http://localhost:8080/v1",
    api_key="sk-no-key-required"
)

completion = client.chat.completions.create(
    model="qwen3-8b",
    messages=[{"role": "user", "content": "用三句话介绍你自己。"}]
)
print(completion.choices[0].message.content)

02.6 常见坑(现象 + 原因 + 解决)

  1. 现象:CUDA 编译时报 nvcc warning : Cannot find valid GPU for '-arch=native', default arch is used,或编译产物只能用 CPU。 - 原因:docs/build.md “Override Compute Capability Specifications” 指出,nvcc 无法探测到本机 GPU 时会回退默认架构;非原生机器 / 多卡混合场景需要显式指定架构。 - 解决:按官方方式指定 -DCMAKE_CUDA_ARCHITECTURES="86;89"(RTX 3070=86、RTX 4090=89);或 -DGGML_NATIVE=OFF 做覆盖全架构的非原生构建。

  2. 现象:llama-server / llama-cli 启动后全程跑在 CPU,生成很慢。 - 原因:使用了 CPU 版压缩包;或 -ngl 未设置 / 被 -dev none 限制;CUDA 后端未编译进二进制;WSL2 内 nvidia-smi 不可用。 - 解决:核对下载的是 bin-win-cuda-12.4-x64.zip(或源码 -DGGML_CUDA=ON 编译);先执行 --list-devices 查看设备;启动时加 -ngl 99(全部层卸载);WSL2 先确认 nvidia-smi 正常。

  3. 现象:对话输出乱码、角色标记错乱、系统提示词不生效。 - 原因:模型自带聊天模板未被正确使用;/v1/chat/completions 要求模型具备受支持的聊天模板(tools/server/README.md 提示:不支持的模型将默认使用 ChatML 模板)。 - 解决:保持 --jinja 默认启用;必要时用 --chat-template / --chat-template-file 指定模板;模板支持清单参考官方 Wiki:https://github.com/ggml-org/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template(tools/server/README.md 内链)。

  4. 现象:端口 9931(或自定义端口)被占用,服务器启动失败。 - 原因:本机已有其他进程占用端口;或上一个 llama-server 实例未退出。 - 解决:--port 指定其他端口(如 8080);排查占用进程;检查 --host 绑定地址是否与其他服务冲突。

  5. 现象:-hf 拉取模型超时、中断或报网络错误。 - 原因:Hugging Face 在国内网络访问不稳定;代理未配置。 - 解决:优先“手动下载 GGUF + -m 本地路径”(02.4.3 方案 C);或用 MODEL_ENDPOINT 指向兼容 HF API 的镜像;tools/server/README.md “Running behind a proxy” 要求下载模型前先导出 HTTP_PROXY 与 HTTPS_PROXY(NO_PROXY 与回环地址直连)。

  6. 现象:llama-quantize 阶段内存不足、进程被杀,或磁盘写满。 - 原因:官方 “Memory/Disk Requirements” 说明:模型当前整体载入内存,内存与磁盘需求相同;原始 F32/BF16 体积很大(官方参考 Llama-3.1-8B 原始 32.1GB)。 - 解决:留出与原始模型相当的 RAM 与磁盘;优先从已有 16bit 模型量化;不要反复对已量化文件再量化(--allow-requantize 会明显损失质量,tools/quantize/README.md 已警告);需要更优质量时配合 --imatrix 重要性矩阵。

02.7 本节来源清单

验证方式:curl 200 = 命令行 HTTP 状态码核验;web_fetch / 源码核对 = 已下载官方原始文件逐条核对;general_search = 搜索索引佐证。核验日期 2026-10-25。

# URL 用途 验证方式
1 https://github.com/ggml-org/llama.cpp 官方仓库主页、README(定位、后端、截图、一键脚本、Docker 说明) curl 200;README 经 https://raw.githubusercontent.com/ggml-org/llama.cpp/master/README.md 下载核对
2 https://github.com/ggml-org/llama.cpp/blob/master/LICENSE MIT 许可证出处 curl 200;raw 文件 https://raw.githubusercontent.com/ggml-org/llama.cpp/master/LICENSE web_fetch 核对为 MIT License
3 https://raw.githubusercontent.com/ggml-org/llama.cpp/master/LICENSE LICENSE 原始文件 web_fetch 实际读取
4 https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md CPU/CUDA 构建命令、CMAKE_CUDA_ARCHITECTURES、RTX 3070=8.6 / RTX 4090=8.9、GGML_NATIVE、OpenSSL curl 200,已下载 docs/build.md 逐条核对
5 https://github.com/ggml-org/llama.cpp/blob/master/docs/models.md -hf 用法、MODEL_ENDPOINT、GGUF 格式、HF GGUF 目录 curl 200,已下载核对
6 https://github.com/ggml-org/llama.cpp/blob/master/tools/server/README.md 服务器功能、端点、默认 127.0.0.1:9931、参数表、构建产物路径、Docker 示例、代理说明、OpenAI 兼容端点 curl 200,已下载核对(参数表逐条引用)
7 https://github.com/ggml-org/llama.cpp/blob/master/tools/cli/README.md 命令行工具参数、--jinja、--color、系统提示词、单轮 / 多行等 curl 200,已下载核对
8 https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md 量化工具用法、命令格式、选项、内存/磁盘要求、量化档体积参考表 curl 200,已下载核对
9 https://github.com/ggml-org/llama.cpp/blob/master/docs/docker.md Docker 镜像名 :full/:light/:server 及 -cuda/-rocm/-vulkan 后缀、平台 curl 200,已下载核对
10 https://github.com/ggml-org/llama.cpp/releases 官方发布页(Release v* / Nightly b* 分类) curl 200
11 https://github.com/ggml-org/llama.cpp/releases/tag/v0.7.0 最新稳定 release 版本号与日期(2026-10-15) curl 200,页面 datetime 核对
12 https://github.com/ggml-org/llama.cpp/releases/tag/b11874 最新 Nightly 标签(2026-10-25)与资产清单 curl 200,expanded_assets/b11874 HTML 解析核对
13 https://github.com/ggml-org/llama.cpp/releases/download/b11874/llama-b11874-bin-win-cuda-12.4-x64.zip Windows CUDA 12.4 预编译包直链 curl 200(HEAD 跟随重定向)
14 https://github.com/ggml-org/llama.cpp/releases/download/b11874/llama-b11874-bin-win-cpu-x64.zip Windows CPU 预编译包备选 资产清单 HTML 核对(同 b11874 页面)
15 https://github.com/ggml-org/llama.cpp/releases/download/b11874/llama-b11874-bin-ubuntu-cuda-12.8-x64.tar.gz Ubuntu CUDA 预编译包备选 资产清单 HTML 核对
16 https://github.com/ggml-org/llama.cpp/blob/master/.github/workflows/release.yml 预编译包打包内容、CMake 目标与后端 DLL 组装方式 curl 200,已下载 1768 行工作流核对
17 https://github.com/ggml-org/llama.cpp/blob/master/tools/server/CMakeLists.txt llama-server 可执行目标名 curl 200,源码 add_executable(llama-server main.cpp) 核对
18 https://github.com/ggml-org/llama.cpp/blob/master/tools/cli/CMakeLists.txt llama-cli 可执行目标名 curl 200,源码 add_executable(llama-cli main.cpp) 核对
19 https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/CMakeLists.txt llama-quantize 可执行目标名 curl 200,源码 add_executable(llama-quantize main.cpp) 核对
20 https://llama.app 官方安装引导站 curl 200
21 https://llama.app/install.sh Linux 一键安装脚本 curl 200,已下载 215 行源码核对(自动探测 CUDA/ROCm/Vulkan/CPU/Metal)
22 https://llama.app/install.ps1 Windows PowerShell 一键安装脚本 curl 200(README Quick start 引用)
23 https://huggingface.co/models?library=gguf&sort=trending HF 上 GGUF 模型目录(docs/models.md 官方链接) curl 200
24 https://developer.nvidia.com/cuda-toolkit CUDA Toolkit 官方下载入口 curl 200
25 https://developer.nvidia.com/cuda-gpus 各型号 GPU 计算能力官方对照表(docs/build.md 引用) curl 200
26 https://github.com/open-webui/open-webui 第三方前端“支持任意 OpenAI 兼容 API”能力依据 curl 200,README 第 13、28 行核对
27 https://github.com/ggml-org/llama.cpp/wiki/Templates-supported-by-llama_chat_apply_template 受支持聊天模板清单(server README 内链) curl 200(2026-10-25 重定向跟随核验)
28 https://opensource.org/licenses/MIT README 徽章指向的 MIT 许可证文本 README 徽章链接
29 https://hf-mirror.com 第三方 Hugging Face 镜像(非官方,仅作 -hf 备选说明) curl 200;站点性质已在正文标注为第三方
30 https://huggingface.co/ggml-org/Qwen3.5-0.8B-GGUF README Quick start -hf 示例仓库 curl 200(2026-10-25 核验)

03. Qwen3 系列(官方 GGUF 量化版)—— 阿里开源稠密 + MoE 大模型,本地一键可跑

适用环境:Windows 10/11 原生、Windows 10/11 + WSL2(Ubuntu 24.04)、RTX 3070 8GB / RTX 4090 24GB、Linux 云服务器;运行方式以 01 章 Ollama 与 02 章 llama.cpp 为本地推理框架。 信息口径:模型规格、许可证、量化文件体积、采样参数、最低框架版本均来自 Qwen 官方 GitHub README、Hugging Face 官方模型仓库与模型卡、config.json、官方 readthedocs 文档;核验日期 2026-10-25。

03.1 项目定位与基本信息

项目 内容
一句话定位 阿里通义千问 Qwen 第三代开源大模型系列(稠密模型 0.6B–32B、MoE 30B-A3B / 235B-A22B),原生支持“思考模式 / 非思考模式”无缝切换,官方同步发布 GGUF 量化权重,可由 llama.cpp、Ollama、LM Studio 等框架在本地显卡上运行。
开源许可 Apache 2.0。出处 1:官方 GitHub README “License Agreement”:“All our open-weight models are licensed under Apache 2.0. You can find the license files in the respective Hugging Face repositories.”(https://github.com/QwenLM/Qwen3)。出处 2:基座模型仓库 LICENSE https://huggingface.co/Qwen/Qwen3-8B/raw/main/LICENSE(实际打开核对为 Apache-2.0);官方 GGUF 仓库 LICENSE https://huggingface.co/Qwen/Qwen3-8B-GGUF/raw/main/LICENSE(同样 Apache-2.0,模型卡 frontmatter license: apache-2.0)。
官方 GitHub 仓库 https://github.com/QwenLM/Qwen3
官方文档站 https://qwen.readthedocs.io/en/latest/ (英文);中文 https://qwen.readthedocs.io/zh-cn/latest/ 。本地运行指南:https://qwen.readthedocs.io/en/latest/run_locally/llama.cpp.html、https://qwen.readthedocs.io/en/latest/run_locally/ollama.html。
Hugging Face 组织 https://huggingface.co/Qwen ;Qwen3 合集 https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f 。
ModelScope(魔搭)组织 https://modelscope.cn/organization/qwen ;官方 README 明确建议中国大陆用户优先使用 ModelScope 下载。
论文 / 博客 技术报告 arXiv:2505.09388 https://arxiv.org/abs/2505.09388 ;官方博客 https://qwenlm.github.io/blog/qwen3/ 。
版本脉络 Qwen3(Qwen3-2504):2025-04-29 发布,稠密 0.6B / 1.7B / 4B / 8B / 14B / 32B,MoE 30B-A3B / 235B-A22B(GitHub README News 2025.04.29)。Qwen3-2507:更新 235B-A22B、30B-A3B、4B 的 Instruct / Thinking 2507 变体,支持 256K 上下文、最长可扩展至 100 万 token(GitHub README “Qwen3-2507” 节与 News 2025.07–2025.08)。本章本地部署以 Qwen3-2504 官方 GGUF 为主。
框架最低版本 llama.cpp ≥ b5401 完整支持 Qwen3(GitHub README “llama.cpp” 节);Ollama ≥ v0.9.0(GitHub README “Ollama” 节);Transformers ≥ 4.51.0(GitHub README “Run Qwen3 / Transformers” 节)。

03.2 官方图片

下图为 Qwen3 官方 GitHub README 顶部 Logo(非 AI 生成、非第三方图)。

Qwen3 官方 Logo

  • 图片来源 URL:https://qianwen-res.oss-accelerate-overseas.aliyuncs.com/logo_qwen3.png(官方 README 第 4 行内嵌 Logo,2026-10-25 curl -L 下载)。
  • 本地路径:https://zhouruolin.cn/upload/03_qwen3_logo.png;file 校验:PNG image data, 3944 x 1555, 8-bit/color RGBA,416,907 字节(>20KB)。

03.3 环境要求

框架与系统要求以 01 章 Ollama、02 章 llama.cpp 为准;本表仅列出 Qwen3 模型侧要求与本地显存/磁盘选型依据。

类别 官方要求 / 说明 出处
操作系统 Windows 10/11 原生、WSL2(Ubuntu 24.04)、Linux 均可;经 Ollama 或 llama.cpp 运行 GGUF。 GitHub README “llama.cpp”“Ollama” 节;01 / 02 章官方文档
GPU 与显存 模型权重体积 + KV 缓存 + 上下文共同占用显存;放不下的层可由框架分层卸载到 CPU(llama.cpp -ngl、Ollama 自动调度)。8GB 与 24GB 选型见 03.4.3 量化档位表。 docs/models.md(llama.cpp -ngl);Ollama FAQ 并发与显存说明;本章 03.4.3 表数据来自 HF 官方仓库文件体积
内存 CPU 推理需 ≥ 模型权重体积;KV 缓存随上下文长度与并行数扩张;官方基准(不同上下文下的内存占用与吞吐)见 https://qwen.readthedocs.io/en/latest/getting_started/speed_benchmark.html。 GitHub README “Performance” 节链接;官方基准页(HTTP 200 已核验)
框架依赖 Ollama v0.9.0+;或 llama.cpp ≥ b5401;Transformers ≥ 4.51.0(非 GGUF 路径)。 GitHub README 各框架小节
磁盘空间 单个 GGUF 文件体积见 03.4.3 表;235B-A22B 为多文件分片,合计上百 GB,不适合个人单卡本地部署。 HF 官方仓库 API 文件体积(本章逐条核验)
上下文 原生 32,768 token;YaRN 可扩展至 131,072 token;config.json 的 max_position_embeddings 为 40,960(预留 32,768 输出 + 8,192 常规提示词)。 Qwen3-8B 模型卡 “Context Length” 节;config.json 实测

官方模型规格一览(参数量、层数、注意力头、隐藏层来自各模型卡 README 与 HF config.json,2026-10-25 逐条抓取):

模型 参数量 层数 Q 头 / KV 头 隐藏层维度 类型 原生上下文
Qwen3-0.6B 0.6B 28 16 / 8 1024 Dense 32,768(YaRN 131,072)
Qwen3-1.7B 1.7B 28 16 / 8 2048 Dense 32,768(YaRN 131,072)
Qwen3-4B 4.0B 36 32 / 8 2560 Dense 32,768(YaRN 131,072)
Qwen3-8B 8.2B 36 32 / 8 4096 Dense 32,768(YaRN 131,072)
Qwen3-14B 14.8B 40 40 / 8 5120 Dense 32,768(YaRN 131,072)
Qwen3-32B 32.8B 64 64 / 8 5120 Dense 32,768(YaRN 131,072)
Qwen3-30B-A3B 30.5B 总 / 3.3B 激活 48 32 / 4 2048 MoE,128 专家 / 每 token 激活 8 32,768(YaRN 131,072)
Qwen3-235B-A22B 235B 总 / 22B 激活 — — — MoE 256K(2507 系列)/ 131,072(2504 系列)

03.4 最详细部署步骤(Ollama 与 llama.cpp 两条路线,Windows 与 WSL2 通用)

03.4.1 依赖安装

  1. 先完成框架安装(任选其一,详细步骤见对应章节): - Ollama 路线:按 01.4.2 完成 Windows 安装包或 WSL2 一键脚本安装,版本 ≥ v0.9.0。 - llama.cpp 路线:按 02.4.2 完成 Windows 预编译 CUDA 包解压,或 WSL2 源码编译(CUDA 架构 RTX 3070=86、RTX 4090=89),版本 ≥ b5401。
  2. 可选:Python 环境用于 huggingface-cli / modelscope 下载 GGUF:
# Ubuntu / WSL2
sudo apt-get install -y python3 python3-pip
pip install huggingface_hub modelscope

03.4.2 模型 / 权重下载(官方仓库 + 国内加速方案)

A. 官方 Hugging Face 仓库清单(均已核验 HTTP 200)

基座模型 官方 GGUF 仓库 可用量化档
Qwen3-0.6B https://huggingface.co/Qwen/Qwen3-0.6B-GGUF Q8_0(仅一档)
Qwen3-1.7B https://huggingface.co/Qwen/Qwen3-1.7B-GGUF Q8_0(仅一档)
Qwen3-4B https://huggingface.co/Qwen/Qwen3-4B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0
Qwen3-8B https://huggingface.co/Qwen/Qwen3-8B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0
Qwen3-14B https://huggingface.co/Qwen/Qwen3-14B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0
Qwen3-32B https://huggingface.co/Qwen/Qwen3-32B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0
Qwen3-30B-A3B https://huggingface.co/Qwen/Qwen3-30B-A3B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0
Qwen3-235B-A22B https://huggingface.co/Qwen/Qwen3-235B-A22B-GGUF Q4_K_M / Q5_0 / Q5_K_M / Q6_K / Q8_0(多分片)

说明:以上 GGUF 仓库均为 Qwen 官方发布(模型卡 base_model: Qwen/Qwen3-*、license: apache-2.0),不是 unsloth 等第三方社区量化;0.6B / 1.7B 官方仅提供 Q8_0 一档。

B. llama.cpp 直连 Hugging Face(官方 README 命令格式)

# 自动拉取指定量化档;<user>/<model>:<quant>,量化档大小写不敏感
./build/bin/llama-cli -hf Qwen/Qwen3-8B-GGUF:Q8_0 --jinja --color -ngl 99 -fa \
  -sm row --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 \
  -c 40960 -n 32768 --no-context-shift

C. 国内加速方案 1:ModelScope 镜像(官方 README 推荐中国大陆使用)

ModelScope 已镜像上述官方 GGUF 仓库,文件体积与 HF 一致(已逐仓库核验 4B / 8B / 14B / 32B / 30B-A3B 文件大小一致)。

# 1) 安装 ModelScope SDK(官方 README:pip install modelscope);
#    如需新版轻量 hub 客户端,可另装 pip install modelscope-hub(CLI 为 ms / modelscope)
pip install modelscope

# 2a) 旧版 SDK CLI(官方文档 Download-Model 页:--model 仓库 ID,--include 文件名通配,
#     --cache_dir 本地缓存目录)
modelscope download --model Qwen/Qwen3-8B-GGUF \
  --include 'Qwen3-8B-Q4_K_M.gguf' --cache_dir ./qwen3-gguf

# 2b) 新版 modelscope-hub CLI(官方 PyPI 客户端:位置参数仓库 ID 与文件名,
#     --local-dir 直存目录、--include 通配过滤;--cache-dir 覆盖缓存目录)
modelscope download Qwen/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf \
  --local-dir ./qwen3-gguf

# 3) SDK 方式下载整个仓库(官方 SDK snapshot_download,local_dir 直存目录;
#    参数签名见已安装 modelscope 包 modelscope/hub/snapshot_download.py)
python3 - <<'PY'
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen3-8B-GGUF', local_dir='./qwen3-gguf')
print(model_dir)
PY

ModelScope 镜像仓库直链(浏览器可直接下载单个文件):

模型 ModelScope GGUF 仓库
Qwen3-4B-GGUF https://modelscope.cn/models/Qwen/Qwen3-4B-GGUF
Qwen3-8B-GGUF https://modelscope.cn/models/Qwen/Qwen3-8B-GGUF
Qwen3-14B-GGUF https://modelscope.cn/models/Qwen/Qwen3-14B-GGUF
Qwen3-32B-GGUF https://modelscope.cn/models/Qwen/Qwen3-32B-GGUF
Qwen3-30B-A3B-GGUF https://modelscope.cn/models/Qwen/Qwen3-30B-A3B-GGUF

D. 国内加速方案 2:huggingface-cli + HF_ENDPOINT 镜像

HF_ENDPOINT 是 huggingface_hub 读取的端点环境变量(源码 src/huggingface_hub/constants.py:ENDPOINT = os.getenv("HF_ENDPOINT", _HF_DEFAULT_ENDPOINT));hf-mirror.com 为第三方 HF 镜像站(非 Qwen / HF 官方)。

# 经镜像端点下载指定 GGUF(官方 Qwen 文档命令格式:huggingface-cli download <repo> <file> --local-dir <dir>)
HF_ENDPOINT=https://hf-mirror.com huggingface-cli download \
  Qwen/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf --local-dir ./qwen3-gguf

下载完成后用本地路径 -m 加载(llama.cpp),或按 01.4.3 方案 C 导入 Ollama。

E. Ollama 模型库直拉(官方 README “Ollama” 节;标签以 https://ollama.com/library/qwen3/tags 为准)

ollama serve
ollama run qwen3:8b
# 可选尺寸后缀::0.6b :1.7b :4b :8b :14b :32b :30b-a3b

03.4.3 量化档位与显存选型表(RTX 3070 8GB / RTX 4090 24GB)

文件体积来自 Hugging Face 官方 GGUF 仓库 API 实测(2026-10-25,单位 GB,按字节 ÷ 10⁹ 计)。注意:表内仅为权重体积,不含 KV 缓存与上下文占用;实际显存需在此基础上预留上下文余量。

模型 Q4_K_M Q5_0 Q5_K_M Q6_K Q8_0
Qwen3-0.6B — — — — 0.64
Qwen3-1.7B — — — — 1.83
Qwen3-4B 2.50 2.82 2.89 3.31 4.28
Qwen3-8B 5.03 5.72 5.85 6.73 8.71
Qwen3-14B 9.00 10.26 10.51 12.12 15.70
Qwen3-32B 19.76 22.64 23.21 26.88 34.82
Qwen3-30B-A3B 18.56 21.08 21.73 25.09 32.48
Qwen3-235B-A22B 分片合计 ≈142.2 ≈161.9 ≈166.8 ≈193.0 ≈249.9

RTX 3070 8GB 选型建议(权重体积 + 小上下文余量):

推荐度 模型 / 档位 权重体积 说明
宽裕 Qwen3-4B-Q4_K_M 2.50 GB 可开较大上下文,速度快。
可行 Qwen3-8B-Q4_K_M 5.03 GB 建议 -c 4096~8192 控制上下文;Q6_K 6.73GB 紧张,Q8_0 8.71GB 超出 8GB 显存。
轻量备用 Qwen3-1.7B-Q8_0(1.83GB)、Qwen3-0.6B-Q8_0(0.64GB) 小 内存 / 显存紧张或需要极高吞吐时使用。
不推荐 Qwen3-14B-Q4_K_M(9.00GB)及以上 >8GB 权重已超显存,只能分层卸载到 CPU,速度明显下降。

RTX 4090 24GB 选型建议:

推荐度 模型 / 档位 权重体积 说明
宽裕 Qwen3-14B-Q8_0 15.70 GB 质量优先;Q6_K 12.12GB 更省显存。
可行 Qwen3-32B-Q4_K_M 19.76 GB 需为 KV 缓存预留余量;Q5_K_M 23.21GB 临界,Q6_K 26.88GB 超出。
可行 Qwen3-30B-A3B-Q4_K_M 18.56 GB MoE 仅激活 3.3B 参数,生成速度快;Q5_K_M 21.73GB 临界,Q6_K 25.09GB 超出。
宽裕 Qwen3-8B-Q8_0 8.71 GB 单卡余量充足,可长上下文。

03.4.4 关键配置(采样参数、上下文、思考模式)

官方推荐采样参数(Qwen3-8B 模型卡 “Best Practices” 节,2026-10-25 核对):

模式 温度 temp top_p top_k min_p 备注
思考模式(默认 enable_thinking=True) 0.6 0.95 20 0 禁止使用贪心解码(greedy),否则可能质量下降、陷入重复死循环。
非思考模式(enable_thinking=False) 0.7 0.8 20 0 对齐 Qwen2.5-Instruct 体验。

其他官方建议:大多数查询输出长度建议 32,768 token;数学 / 编程竞赛等复杂问题 benchmark 可设到 38,912 token。

思考模式开关(模型卡 “Switching Between Thinking and Non-Thinking Mode” 节):

运行环境 开启 / 关闭方式 说明
Transformers 模板参数 enable_thinking=True(默认)/ False tokenizer.apply_chat_template(..., enable_thinking=False)
提示词软开关 在系统或用户消息中加入 /think 或 /no_think 多轮对话以最近一条指令为准;enable_thinking=False 时软开关失效。
Ollama(Qwen3-2504) REPL 内 /set think、/set nothink 官方 README “Ollama” 节。
llama.cpp 服务端 ① 解析开关:--reasoning-format deepseek(思考内容写入 message.reasoning_content)、none(不解析);② 实际关闭思考:在 /v1/chat/completions 请求体传 "chat_template_kwargs": {"enable_thinking": false},或启动时 --chat-template-kwargs '{"enable_thinking":false}';提示词中加 /no_think 同样有效 tools/server/README.md 参数表与请求体 chat_template_kwargs 说明;官方 Qwen README llama-server 命令使用 --reasoning-format deepseek。

上下文与长文本:

配置项 取值 / 说明 出处
原生上下文 32,768 token 各模型卡 “Context Length”
YaRN 扩展 131,072 token;官方 Qwen readthedocs 命令:-c 131072 --rope-scaling yarn --rope-scale 4 --yarn-orig-ctx 32768 模型卡 “Processing long texts”;https://qwen.readthedocs.io/en/latest/run_locally/llama.cpp.html
config.json max_position_embeddings 40,960(32,768 输出 + 8,192 提示词) Qwen3-8B 模型卡;config.json 实测
llama.cpp 上下文参数 -c <n>(上下文长度)、-n <n>(最大生成长度)、--no-context-shift(关闭滚动移位,到达 -c 后停止) 02 章 02.4.4 参数表;官方 Qwen README 命令示例
Ollama 上下文 REPL /set parameter num_ctx 40960、/set parameter num_predict 32768;API 传 options.num_ctx 官方 README “Ollama” 节;01 章 01.4.4

官方注意:Ollama 默认 num_ctx=2048、num_predict=-1,对 Qwen3 偏小,可能影响体验;建议按模型能力手动设置(README “Ollama” Note 节)。

03.4.5 启动

A. llama.cpp 命令行(官方 README 命令,Qwen3-8B-GGUF:Q8_0)

./build/bin/llama-cli -hf Qwen/Qwen3-8B-GGUF:Q8_0 \
  --jinja --color -ngl 99 -fa -sm row \
  --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 \
  -c 40960 -n 32768 --no-context-shift
# Ctrl+C 退出

B. llama-server(官方 README 命令,端口 8080)

./build/bin/llama-server -hf Qwen/Qwen3-8B-GGUF:Q8_0 \
  --jinja --reasoning-format deepseek \
  -ngl 99 -fa -sm row \
  --temp 0.6 --top-k 20 --top-p 0.95 --min-p 0 \
  -c 40960 -n 32768 --no-context-shift \
  --port 8080
  • 内置 Web UI:http://localhost:8080
  • OpenAI 兼容 API:http://localhost:8080/v1

C. Ollama(官方 README 命令)

ollama serve
ollama run qwen3:8b
# 进入 REPL 后:
# /set parameter num_ctx 40960
# /set parameter num_predict 32768
# /set think      # 开启思考(Qwen3-2504 默认即开启)
# /set nothink    # 关闭思考
# /bye            # 退出
  • OpenAI 兼容 API:http://localhost:11434/v1/(使用前先 ollama run qwen3:8b 把模型加载准备好,官方 README Note)。

03.5 使用方法

03.5.1 启动方式

框架 入口 默认端口 / 界面 出处
Ollama ollama run qwen3:8b 命令行 REPL;API 127.0.0.1:11434 官方 README “Ollama” 节;01 章
llama.cpp CLI ./llama-cli -hf Qwen/Qwen3-8B-GGUF:Q8_0 ... 终端交互 官方 README “llama.cpp” 节;02 章
llama.cpp Server ./llama-server ... --port 8080 内置 Web UI http://localhost:8080;OpenAI 兼容 /v1 官方 README;tools/server/README.md
LM Studio 直接打开官方 GGUF 文件 图形界面 官方 README “LMStudio” 节(https://lmstudio.ai/)

03.5.2 命令行操作步骤(以 Ollama 为例)

# 1. 启动服务(后台常驻,使用期间不要退出)
ollama serve

# 2. 拉取并进入 Qwen3-8B
ollama run qwen3:8b

# 3. REPL 内常用命令(官方 README “Ollama” 节)
>>> /set parameter num_ctx 40960     # 设置上下文长度
>>> /set parameter num_predict 32768 # 设置最大生成长度
>>> /set think                      # 开启思考模式
>>> /set nothink                   # 关闭思考模式
>>> /bye                            # 退出会话

03.5.3 参数说明表(Qwen3 官方推荐 + 框架常用开关)

参数 / 指令 作用 官方推荐取值 / 默认 出处
--jinja 使用模型内嵌 Jinja 聊天模板 llama.cpp 默认启用;官方 Qwen 命令显式传入 tools/cli/README.md;官方 README
--reasoning-format deepseek 将思考内容解析到 message.reasoning_content 官方 Qwen 服务端命令使用 deepseek tools/server/README.md;官方 README
-ngl 99 全部层卸载到 GPU 官方示例固定 99 官方 README llama.cpp 命令
-fa 开启 Flash Attention 官方示例显式传入 官方 README;02 章参数表
-sm row 多 GPU 按行切分并行 官方示例固定 row(单卡不影响结果) 官方 README;02 章参数表
--temp 0.6 思考模式温度 0.6(思考)/ 0.7(非思考) Qwen3-8B 模型卡 Best Practices
--top-p 0.95 Top-P 0.95(思考)/ 0.8(非思考) 同上
--top-k 20 Top-K 20 同上
--min-p 0 Min-P 关闭 0 同上
-c 40960 上下文长度 官方示例 40960;RTX 3070 建议先降到 4096–8192 官方 README 命令;本章 03.4.3 选型
-n 32768 最大生成长度 32768 官方 README 命令;模型卡输出长度建议
--no-context-shift 关闭上下文滚动移位 官方命令显式加入 官方 README;02 章参数表
Ollama /set think / /set nothink 切换思考模式 2504 模型默认开启 官方 README “Ollama” 节
Ollama /set parameter num_ctx <n> 当前会话上下文长度 官方示例 40960 官方 README;01 章
Ollama /set parameter num_predict <n> 当前会话最大生成长度 官方示例 32768 官方 README

03.5.4 端到端示例(输入 → 命令 → 输出)

场景:RTX 3070 8GB,WSL2 内 llama.cpp 源码编译 CUDA 版,ModelScope 下载 Qwen3-8B-Q4_K_M.gguf,启动服务并完成一次非思考模式对话。

第 1 步:下载模型(ModelScope,新版 hub CLI 语法)

modelscope download Qwen/Qwen3-8B-GGUF Qwen3-8B-Q4_K_M.gguf \
  --local-dir ~/models/qwen3-gguf
# 旧版 SDK CLI 等价写法:
# modelscope download --model Qwen/Qwen3-8B-GGUF \
#   --include 'Qwen3-8B-Q4_K_M.gguf' --cache_dir ~/models/qwen3-gguf

第 2 步:启动 llama-server(8GB 卡收窄上下文,关闭思考解析)

cd ~/llama.cpp
./build/bin/llama-server \
  -m ~/models/qwen3-gguf/Qwen3-8B-Q4_K_M.gguf \
  --host 0.0.0.0 --port 8080 \
  -ngl 99 -fa --jinja \
  -c 8192 -n 4096 --no-context-shift \
  --reasoning-format none

第 3 步:健康检查

curl http://localhost:8080/health
# 就绪:{"status": "ok"}

第 4 步:OpenAI 兼容请求(输入 → 命令)

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer no-key" \
  -d '{
    "model": "qwen3-8b",
    "messages": [
      {"role": "system", "content": "你是简洁的中文助手。"},
      {"role": "user", "content": "用三句话解释什么是量化(quantization),面向新手。"}
    ],
    "chat_template_kwargs": {"enable_thinking": false},
    "temperature": 0.7,
    "top_p": 0.8,
    "top_k": 20,
    "min_p": 0
  }'

输出(OpenAI 兼容结构;content 为模型回答,模型实际生成文本以运行时为准):

{
  "object": "chat.completion",
  "model": "qwen3-8b",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "量化就是把模型里原本高精度的数字压缩成更低位数来存储和计算。\n这样模型文件更小、更省显存,普通电脑也能跑起来;代价是回答质量可能有轻微下降。\n常见档位有 Q4_K_M、Q5_K_M、Q6_K、Q8_0,位数越小体积越小、速度越快。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 34, "completion_tokens": 72, "total_tokens": 106}
}

思考模式对照:将 --reasoning-format 改为 deepseek,请求中不关闭思考,模型会先在 reasoning_content 输出推理过程,再在 content 给出正式回答(字段结构见 tools/server/README.md /v1/chat/completions 文档)。

03.6 常见坑(现象 + 原因 + 解决)

  1. 现象:回答前面大段 <think>...</think> 推理内容,新手误以为输出异常。 - 原因:Qwen3-2504 默认开启思考模式(enable_thinking=True)。 - 解决:Transformers 传 enable_thinking=False;提示词加 /no_think;Ollama 用 /set nothink;llama.cpp 实际关闭思考需在请求体传 "chat_template_kwargs": {"enable_thinking": false}(或 --chat-template-kwargs '{"enable_thinking":false}'),--reasoning-format none 只控制思考内容是否从输出中剥离、不会阻止模型思考;想把思考单独展示可用 --reasoning-format deepseek。2507 系列分 Instruct(仅非思考)与 Thinking(仅思考)变体,按模型名选择。

  2. 现象:回答重复绕圈、质量明显变差。 - 原因:模型卡 Best Practices 明确警告:思考模式不要使用贪心解码(greedy);需按官方采样参数设置温度、Top-P、Top-K、Min-P。 - 解决:思考模式 temp 0.6 / top_p 0.95 / top_k 20 / min_p 0;非思考 temp 0.7 / top_p 0.8 / top_k 20 / min_p 0;出现重复时可追加 --presence-penalty 1.5(官方 GGUF 模型卡命令示例)。

  3. 现象:长对话中途“忘前文”或被截断。 - 原因:Ollama 默认采用上下文滚动移位(官方 README Note:Ollama 与 llama.cpp 一样具备滚动上下文管理,默认 num_ctx=2048、num_predict=-1,对 Qwen3 偏小);llama.cpp 的 --context-shift 默认关闭,一旦显式开启滚动,超过 -c 后旧 token 会被淘汰。 - 解决:Ollama 用 /set parameter num_ctx 与 num_predict 显式放大;llama.cpp 用 -c 放大上下文,官方 Qwen 命令显式 --no-context-shift 保持关闭滚动移位;超过 32,768 时按官方 YaRN 方案扩展到 131,072(-c 131072 --rope-scaling yarn --rope-scale 4 --yarn-orig-ctx 32768)。

  4. 现象:启动即报显存不足(CUDA out of memory),模型无法加载。 - 原因:所选量化档权重已接近或超过显存;8GB 卡加载 14B 以上模型必然超限;KV 缓存还会额外占用显存。 - 解决:按 03.4.3 表降档(Q4_K_M 优先)或缩小模型尺寸;llama.cpp 调小 -ngl 让部分层留在 CPU;Ollama 减小 num_ctx;8GB 卡不要尝试 14B / 32B / 30B-A3B。

  5. 现象:-hf 或 ollama pull 长时间下载超时、中断。 - 原因:Hugging Face 在国内网络不稳定。 - 解决:优先 ModelScope CLI / 浏览器镜像下载官方 GGUF,再用本地路径 -m 加载;huggingface-cli 配合 HF_ENDPOINT=https://hf-mirror.com;代理环境按 02.6 第 5 条配置 HTTPS_PROXY。

  6. 现象:Ollama 里 qwen3:30b-a3b 对应权重与预期不符,或找不到某一量化档。 - 原因:官方 README Note 明确:Ollama 命名可能与 Qwen 原始命名不一致(例如 qwen3:30b-a3b 实际指向 qwen3:30b-a3b-thinking-2507-q4_K_M,截至 2025 年 8 月)。 - 解决:拉取前先核对 https://ollama.com/library/qwen3/tags;需要精确量化档时,用 ModelScope/HF 下载 GGUF 后按 01.4.3 离线导入自定义模型。

  7. 现象:旧版 llama.cpp 加载 Qwen3 报错(聊天模板异常、tokenizer 报错、不识别模型)。 - 原因:官方要求 llama.cpp ≥ b5401 才完整支持 Qwen3。 - 解决:按 02.4.2 更新到最新 Nightly 稳定编译产物,或升级 Ollama 到 v0.9.0+。

03.7 本节来源清单

验证方式:web_fetch = 文档抓取工具实际打开;curl 200 = 命令行 HTTP 状态码核验;API 抓取 = Hugging Face / ModelScope 官方 API 拉取文件清单与体积;源码核对 = 已下载官方 README / 模型卡 / config.json 逐条核对。核验日期 2026-10-25。

# URL 用途 验证方式
1 https://github.com/QwenLM/Qwen3 官方仓库:模型清单、框架版本要求、llama.cpp / Ollama / Transformers 官方命令、License Agreement、版本脉络 curl 200;README.md 经 raw 下载全文核对
2 https://github.com/QwenLM/Qwen3/blob/main/README.md 同上,原始 README 链接 curl 200
3 https://huggingface.co/Qwen/Qwen3-8B Qwen3-8B 基座模型官方仓库 curl 200
4 https://huggingface.co/Qwen/Qwen3-8B/raw/main/LICENSE 基座模型 Apache-2.0 许可证 web_fetch 实际打开核对
5 https://huggingface.co/Qwen/Qwen3-8B/raw/main/README.md 模型卡:参数 / 层数 / 上下文 / 思考开关 / 推荐采样参数 / 输出长度 curl 200,已下载核对
6 https://huggingface.co/Qwen/Qwen3-8B/raw/main/config.json max_position_embeddings=40960、hidden 4096、36 层、32Q/8KV API 抓取 解析核对
7 https://huggingface.co/Qwen/Qwen3-8B-GGUF 官方 8B GGUF 仓库 curl 200
8 https://huggingface.co/Qwen/Qwen3-8B-GGUF/raw/main/LICENSE 官方 GGUF Apache-2.0 许可证 web_fetch 核对
9 https://huggingface.co/Qwen/Qwen3-8B-GGUF/raw/main/README.md 模型卡:量化档清单、llama.cpp / Ollama 命令 curl 200,已下载核对
10 https://huggingface.co/api/models/Qwen/Qwen3-8B-GGUF?blobs=true 8B 各量化档文件体积(Q4_K_M 5.03GB … Q8_0 8.71GB) API 抓取 解析核对
11 https://huggingface.co/Qwen/Qwen3-4B-GGUF 官方 4B GGUF 仓库 curl 200
12 https://huggingface.co/api/models/Qwen/Qwen3-4B-GGUF?blobs=true 4B 量化档体积(Q4_K_M 2.50 … Q8_0 4.28GB) API 抓取
13 https://huggingface.co/Qwen/Qwen3-14B-GGUF 官方 14B GGUF 仓库 curl 200
14 https://huggingface.co/api/models/Qwen/Qwen3-14B-GGUF?blobs=true 14B 量化档体积(Q4_K_M 9.00 … Q8_0 15.70GB) API 抓取
15 https://huggingface.co/Qwen/Qwen3-32B-GGUF 官方 32B GGUF 仓库 curl 200
16 https://huggingface.co/api/models/Qwen/Qwen3-32B-GGUF?blobs=true 32B 量化档体积(Q4_K_M 19.76 … Q8_0 34.82GB) API 抓取
17 https://huggingface.co/Qwen/Qwen3-30B-A3B-GGUF 官方 30B-A3B GGUF 仓库 curl 200
18 https://huggingface.co/api/models/Qwen/Qwen3-30B-A3B-GGUF?blobs=true 30B-A3B 量化档体积(Q4_K_M 18.56 … Q8_0 32.48GB) API 抓取
19 https://huggingface.co/Qwen/Qwen3-0.6B-GGUF 官方 0.6B GGUF 仓库(仅 Q8_0 0.64GB) API 抓取
20 https://huggingface.co/Qwen/Qwen3-1.7B-GGUF 官方 1.7B GGUF 仓库(仅 Q8_0 1.83GB) API 抓取
21 https://huggingface.co/Qwen/Qwen3-235B-A22B-GGUF 官方 235B-A22B 分片 GGUF 仓库 curl 200;API 抓取 分片体积
22 https://huggingface.co/Qwen/Qwen3-0.6B 0.6B 基座仓库与模型卡(0.6B / 28 层 / 32,768 上下文) curl 200;API 抓取 config
23 https://huggingface.co/Qwen/Qwen3-1.7B 1.7B 基座仓库与模型卡(1.7B / 28 层) curl 200;API 抓取 config
24 https://huggingface.co/Qwen/Qwen3-4B 4B 基座仓库与模型卡(4.0B / 36 层 / 32Q/8KV / 2560) curl 200;API 抓取 config
25 https://huggingface.co/Qwen/Qwen3-14B 14B 基座仓库与模型卡(14.8B / 40 层 / 40Q/8KV / 5120) curl 200;API 抓取 config
26 https://huggingface.co/Qwen/Qwen3-32B 32B 基座仓库与模型卡(32.8B / 64 层 / 64Q/8KV / 5120) curl 200;API 抓取 config
27 https://huggingface.co/Qwen/Qwen3-30B-A3B 30B-A3B 基座仓库与模型卡(30.5B/3.3B 激活 / 48 层 / 32Q/4KV / 128 专家激活 8) curl 200;API 抓取 config
28 https://huggingface.co/Qwen Qwen 官方 HF 组织 curl 200
29 https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f 官方 Qwen3 模型合集 curl 200
30 https://qwen.readthedocs.io/en/latest/ Qwen 官方文档站英文首页 curl 200
31 https://qwen.readthedocs.io/zh-cn/latest/ Qwen 官方文档站中文首页 curl 200(README 内链)
32 https://qwen.readthedocs.io/en/latest/run_locally/llama.cpp.html 官方 llama.cpp 本地运行指南(模型下载、-m/-hf、参数含义、YaRN、思考解析) curl 200,已下载 HTML 提取核对
33 https://qwen.readthedocs.io/zh-cn/latest/run_locally/llama.cpp.html 中文 llama.cpp 指南 curl 200
34 https://qwen.readthedocs.io/en/latest/run_locally/ollama.html 官方 Ollama 本地运行指南 curl 200(README 内链)
35 https://qwen.readthedocs.io/en/latest/getting_started/speed_benchmark.html 官方不同上下文下内存占用与吞吐基准 curl 200,页面已下载核对
36 https://modelscope.cn/organization/qwen ModelScope 官方 Qwen 组织 curl 200
37 https://modelscope.cn/models/Qwen/Qwen3-8B-GGUF ModelScope 镜像 8B GGUF 仓库 curl 200;文件 API 体积与 HF 一致
38 https://modelscope.cn/models/Qwen/Qwen3-4B-GGUF ModelScope 镜像 4B GGUF curl 200;文件 API 体积一致
39 https://modelscope.cn/models/Qwen/Qwen3-14B-GGUF ModelScope 镜像 14B GGUF curl 200;文件 API 体积一致
40 https://modelscope.cn/models/Qwen/Qwen3-32B-GGUF ModelScope 镜像 32B GGUF curl 200;文件 API 体积一致
41 https://modelscope.cn/models/Qwen/Qwen3-30B-A3B-GGUF ModelScope 镜像 30B-A3B GGUF curl 200;文件 API 体积一致
42 https://modelscope.cn/models/Qwen/Qwen3-8B ModelScope 基座模型镜像 curl 200
43 https://modelscope.cn/models/Qwen/Qwen3-32B ModelScope 32B 基座镜像 curl 200
44 https://modelscope.cn/models/Qwen/Qwen3-235B-A22B ModelScope 235B 基座镜像 curl 200
45 https://modelscope.ai/docs/Models/Download-Model ModelScope 旧版 SDK CLI modelscope download --model --include --cache_dir 官方文档(站点为 SPA,general_search 抓取正文片段核验;页面 curl 200) general_search 命中官方文档片段;curl 200
46 https://github.com/modelscope/modelscope ModelScope 官方 SDK 仓库(pip install modelscope;snapshot_download 导出与 local_dir 参数经已安装包 modelscope/hub/snapshot_download.py 源码核对) curl 200;SDK 源码 curl 200 核对
46b https://pypi.org/project/modelscope-hub/0.1.7/ 新版轻量 hub 官方客户端:ms / modelscope CLI、download 子命令、--local-dir / --cache-dir / --include 参数表 web_fetch 实际打开 PyPI 项目页核对
47 https://huggingface.co/docs/huggingface_hub/package_reference/environment_variables huggingface_hub 环境变量官方文档 web_fetch 核对
48 https://raw.githubusercontent.com/huggingface/huggingface_hub/main/src/huggingface_hub/constants.py HF_ENDPOINT 读取逻辑(ENDPOINT = os.getenv("HF_ENDPOINT", ...)) 源码 curl 200 核对
49 https://hf-mirror.com 第三方 Hugging Face 镜像(非官方,仅作加速备选说明) curl 200;站点性质已在正文标注
50 https://ollama.com/library/qwen3/tags Ollama 官方 qwen3 标签清单(命名与量化档核对) curl 200;HTML 标签行解析核对
51 https://github.com/ggml-org/llama.cpp/tree/master/tools/server/README.md --reasoning-format、--jinja、OpenAI 兼容端点、默认端口等参数出处 curl 200;02 章已下载核对
52 https://github.com/ggml-org/llama.cpp/tree/master/tools/cli/README.md --jinja、--color、-c、-n 等参数出处 curl 200;02 章已下载核对
53 https://arxiv.org/abs/2505.09388 Qwen3 Technical Report(arXiv:2505.09388) curl 200
54 https://qwenlm.github.io/blog/qwen3/ 官方 Qwen3 发布博客(基准、硬件参考) curl 200
55 https://qianwen-res.oss-accelerate-overseas.aliyuncs.com/logo_qwen3.png 本章 Qwen3 官方 Logo 原图 curl 200,file 校验为 PNG 3944×1555、416,907 字节

04. GPT-SoVITS —— 少样本中文语音克隆与语音合成(5 秒零样本 / 1 分钟微调)

适用场景说明:本节面向博主「个人电脑本地部署」场景,环境基线为 Windows 10/11 + WSL2(Ubuntu 24.04)、RTX 3070 8GB / RTX 4090 24GB,另含 Linux 云服务器视角。所有事实均以官方 GitHub README、LICENSE、源码与官方 HF 仓库为准;官方未公布的数值在文中明确标注「README 未给出 / 待实测」,不做推测填充。

04.1 项目定位与基本信息

项目 内容
一句话定位 一个支持零样本 TTS(输入约 5 秒参考音频即可合成目标音色)与少样本微调(约 1 分钟训练数据提升相似度)的强少样本语音转换 / 文本转语音 WebUI,内置伴奏分离、自动切片、中文 ASR、文本标注等数据集制作工具链。
开源许可 MIT License(Copyright © 2024 RVC-Boss)。出处:官方仓库 LICENSE 文件原文为 MIT License;README 顶部 LICENSE 徽章链接指向 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/LICENSE。
官方 GitHub 仓库 https://github.com/RVC-Boss/GPT-SoVITS
官方文档 / 官网 简体中文官方指南(语雀):https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e —— README 顶部「简体中文」徽章指向该站,为项目官方中文用户手册;英文指南:https://rentry.co/GPT-SoVITS-guide#/ (README「English」徽章指向,本部署环境网络受限未连通,链接以官方 README 为准)。在线体验 Demo:https://lj1995-gpt-sovits-proplus.hf.space/ (README 徽章链接的 Hugging Face Space)。更新日志:https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/en/Changelog_EN.md
支持语种 官方 README 功能说明:英文、日文、韩文、粤语、中文(English, Japanese, Korean, Cantonese and Chinese);WebUI 推理语种下拉另含「中英混合 / 日英混合 / 粤英混合 / 韩英混合 / 多语种混合」等混合模式(见 04.5 参数表,来源为官方推理 WebUI 源码)。
版本信息 截至 2026-10-25 核查:GitHub Releases 页面最新标签为 20250606v2pro(发布于 2025-06-06 03:04:27Z,来源:https://github.com/RVC-Boss/GPT-SoVITS/releases ,curl 抓取 release 页面 HTML 核实 datetime);GitHub release 页面仅托管源码,Windows 整合包托管在官方 HF 仓库(见 04.4)。README Python 徽章标注 3.10–3.12。

04.2 官方图片

  • 下图来自官方 README「Zero-Shot TTS Speaker Similarity Comparison Image on SeedTTS Eval Testset_CN2020」小节,为官方音色相似度对比图(非 AI 生成、非第三方图片):

GPT-SoVITS 零样本音色相似度对比(SeedTTS 中文测试集,官方 README 原图)

项目 记录
本地文件 https://zhouruolin.cn/upload/04_gptsovits_seedtts_compare.png
图片来源 URL https://github.com/user-attachments/assets/8c2a0e0a-7212-4b77-b5ef-2d192e09127f (官方 README 第 55 行 <img src=...> 引用)
下载方式 curl -sL -o 04_gptsovits_seedtts_compare.png "https://github.com/user-attachments/assets/8c2a0e0a-7212-4b77-b5ef-2d192e09127f"
格式 / 体积校验 file 命令确认:PNG image data, 2400 x 1650, 8-bit/color RGBA, non-interlaced;体积 418,844 字节(约 409 KB),大于 20 KB 阈值。

说明:官方 README 未提供独立 logo 文件,另一处官方素材为 GitHub 附件中的演示视频(https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb ,视频,非图片,故未纳入本节图集)。本节仅使用上述 1 张官方静态图。

04.3 环境要求

以下表格中,官方 README 「Tested Environments」实测组合列于「依赖 / 版本实测记录」行;README 未公布的显存、内存下限均如实标注。

维度 官方说明与实测记录
操作系统 README 标注 Windows 实测版本为 win>=10;源码安装支持 Linux、macOS(README Installation 分 Windows / Linux / macOS 三节)。WSL2(Ubuntu 24.04)按官方 Linux 流程部署即可;GPU 直通依赖 Windows 侧已安装 NVIDIA 驱动。
GPU 与显存 官方 README 未公布各版本模型的显存下限数值(待实测)。README 实测环境表覆盖 NVIDIA CUDA 11.8 / 12.4 / 12.8、Apple silicon 与纯 CPU;官方给出的速度基准为 GPT-SoVITS v2 ProPlus 推理 RTF:4060Ti 上 0.028、4090 上 0.014(1400 词约 4 分钟文本,推理 3.36 秒)、M4 CPU 上 0.526(来源:README「RTF of GPT-SoVITS v2 ProPlus」段)。Docker 部署说明中提供 is_half 半精度开关:GPU 支持时设 true 以降低显存占用。
内存 README 未公布独立内存下限(待实测)。
依赖(官方实测组合,README Tested Environments 原表) Python 3.10 + PyTorch 2.5.1 + CUDA 12.4;Python 3.11 + PyTorch 2.5.1 + CUDA 12.4;Python 3.11 + PyTorch 2.7.0 + CUDA 12.8;Python 3.9 + PyTorch 2.8.0dev + CUDA 12.8;Python 3.12 + PyTorch 2.7.1 + CUDA 11.8;Python 3.12 + PyTorch 2.7.1 + CUDA 12.8;Python 3.9 + PyTorch 2.5.1(Apple silicon);Python 3.11 + PyTorch 2.7.0(Apple silicon);Python 3.9 + PyTorch 2.2.2(CPU)。源码 requirements.txt 关键约束:numpy<2.0、librosa==0.10.2、transformers>=4.51,<5、peft<0.18.0、ctranslate2>=4.0,<5、gradio<5、onnxruntime-gpu(x86_64)、funasr>=1.3.7、av>=11 等。
磁盘空间(含模型权重体积,本环境实测) ① Windows 整合包:README 当前指引文件 GPT-SoVITS-v3lora-20250228.7z 为 6,754,961,256 字节(约 6.29 GiB,HEAD 请求实测 content-length);HF 仓库内更新版本 GPT-SoVITS-v5-20261005.7z 为 10,869,231,773 字节(约 10.12 GiB)、GPT-SoVITS-v5-20261005nvidia50x0.7z 为 10,644,775,528 字节(约 9.91 GiB),均为 HF 仓库文件列表 + HEAD 实测;解压后预留空间建议按压缩包 1.5–2 倍估算(非官方数值,属经验建议)。② 源码部署预训练底模:官方 HF 仓库 lj1995/GPT-SoVITS 全版本文件合计约 6.4 GB(HF tree API 实测),实际按需下载所用版本子集。③ 中文前端 G2PWModel.zip:588,856,634 字节(约 561.6 MiB,HEAD 实测)。④ 可选 UVR5 人声分离权重:约 594.4 MB(HF tree API 实测)。⑤ 可选中文 ASR(Damo paraformer / VAD / 标点)与英日 ASR(faster-whisper-large-v3)另需额外磁盘。

04.4 最详细部署步骤(Windows 与 WSL2 双视角)

方案 A:Windows 官方整合包(免环境、解压即用,README 首选方案)

README「Windows」节原文指引:Windows 用户(tested with win>=10)下载整合包后双击 _go-webui.bat 启动 WebUI。

1. 依赖安装

  • 整合包内置 Python 运行环境,无需自行安装 Python / PyTorch。
  • 安装 Visual Studio 2017 运行库(README 指引):https://aka.ms/vs/17/release/vc_redist.x86.exe
  • 提示:README 手动安装节要求 Windows 用户把 ffmpeg.exe、ffprobe.exe 放到项目根目录(README 未明确说明整合包是否已内置这两个程序);整合包启动后若提示缺少 FFmpeg,再按 04.4 方案 B 的 Windows 小节补放。

2. 项目下载(官方 release / HF 整合包链接,已逐一验证)

README 当前正文链接(2026-10-25 复核可访问,HTTP 302 → 200):

https://huggingface.co/lj1995/GPT-SoVITS-windows-package/resolve/main/GPT-SoVITS-v3lora-20250228.7z?download=true
文件名 体积(HEAD 实测) 说明
GPT-SoVITS-v3lora-20250228.7z 6.29 GiB README 正文当前指引版本
GPT-SoVITS-v4-20250529.7z 6.98 GiB(7,493,794,100 字节) v4 版本
GPT-SoVITS-v2pro-20250604.7z 7.62 GiB(8,185,086,602 字节) v2Pro 版本
GPT-SoVITS-v5-20261005.7z 10.12 GiB HF 仓库内最新 v5 整合包
GPT-SoVITS-v5-20261005nvidia50x0.7z 9.91 GiB v5 的 NVIDIA 50 系变体

选择建议(非 README 强制规定):纯按 README 正文走即选 v3lora 包;想体验 v5 音色相似度与 CUDA Graph / flash attention 加速可选用 v5 包。nvidia50 系列变体面向 RTX 50 系显卡,3070 / 4090 选择普通包即可。

3. 模型 / 权重下载

  • 整合包已内置对应底模,一般无需手动下载;手动补充模型的放置目录见下方方案 B 第 3 步(目录结构相同)。

4. 关键配置

配置项 值 / 目录 来源
解压根目录 建议纯英文短路径(如 D:\GPT-SoVITS),避免中文、空格、括号 实践经验;README 未单独成文,04.6 常见坑第 1 条说明
内置 WebUI 启动脚本 _go-webui.bat(README 第 78 行);整合包目录另提供 go-webui.bat / go-webui.ps1,go-webui-v1.bat / go-webui-v1.ps1 切换 v1 版本,go-webui-v2.bat / go-webui-v2.ps1 打开独立推理 WebUI(README「Finetune and inference」节) 官方 README

5. 启动

# 解压后进入目录,双击即可,等价命令:
.\go-webui.bat
# 如需 v1 版本:
.\go-webui-v1.bat
# 仅打开推理 WebUI:
.\go-webui-v2.bat

浏览器自动打开本地 Gradio 页面(默认监听本机回环地址;具体端口以启动终端输出为准,README 未固化端口号)。


方案 B:WSL2(Ubuntu 24.04)源码部署(官方 install.sh 一键脚本)

README「Linux」节官方命令(环境前置:Anaconda / Miniconda 已安装;WSL2 内已可 nvidia-smi 看到 3070 / 4090):

1. 依赖安装(conda 环境 + 一键脚本自动装 torch / CUDA 依赖)

# 进入准备好的项目目录
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITS

# 官方 README Linux 节命令
conda create -n GPTSoVits python=3.10
conda activate GPTSoVits

# --device 可选 CU126 | CU128 | ROCM | CPU;--source 可选 HF | HF-Mirror | ModelScope
# 国内网络直接选 HF-Mirror 或 ModelScope,脚本自动走对应镜像源拉取模型
bash install.sh --device CU128 --source HF-Mirror --download-uvr5

install.sh 参数表(已核对官方脚本 print_help 输出,来源:仓库 install.sh 源码):

参数 取值 说明
--device CU126 / CU128 / ROCM / MPS / CPU 必选;3070/4090 按 WSL2 内 CUDA 工具链版本选 CU126 或 CU128;纯推理无 NVIDIA GPU 选 CPU
--source HF / HF-Mirror / ModelScope 必选;模型下载源;国内推荐 HF-Mirror 或 ModelScope
--download-uvr5 开关 可选;是否额外下载 UVR5 人声分离模型
-h, --help 开关 查看帮助

2. 项目下载 / 安装(手动等价步骤,README「Install Manually」节)

一键脚本失败时可按 README 手动流程安装:

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits

# README 原文顺序:先装 extra-req(--no-deps),再装主依赖
pip install -r extra-req.txt --no-deps
pip install -r requirements.txt

FFmpeg 安装(README「Install FFmpeg → Ubuntu/Debian Users」节):

sudo apt update
sudo apt install ffmpeg
sudo apt install libsox-dev
# conda 用户等价方式:
conda install ffmpeg

Windows 源码部署等价命令(README「Windows」节 PowerShell):

conda create -n GPTSoVits python=3.10
conda activate GPTSoVits
pwsh -F install.ps1 --Device CU128 --Source HF-Mirror [--DownloadUVR5]
# --Device 可选 CU126 | CU128 | CPU;--Source 可选 HF | HF-Mirror | ModelScope(已核对 install.ps1 param 定义)

Windows 手动安装 FFmpeg:README 指引将 ffmpeg.exe(https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe )与 ffprobe.exe(https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe )放入项目根目录。

3. 模型 / 权重下载(README「Pretrained Models」节;install.sh 跑成功可跳过第 1、2、3 项)

序号 模型 官方来源 放置目录(README 原文)
1 GPT-SoVITS 预训练底模 https://huggingface.co/lj1995/GPT-SoVITS GPT_SoVITS/pretrained_models
2 G2PW 中文前端模型(仅中文 TTS 需要) HF:https://huggingface.co/XXXXRT/GPT-SoVITS-Pretrained/resolve/main/G2PWModel.zip ;ModelScope:https://www.modelscope.cn/models/XXXXRT/GPT-SoVITS-Pretrained/resolve/master/G2PWModel.zip 解压后重命名为 G2PWModel,放入 GPT_SoVITS/text
3 UVR5 人声 / 伴奏分离、去混响权重(可选) https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights tools/uvr5/uvr5_weights
4 中文 ASR 三件套(可选,数据集制作) Damo ASR:https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/files ;Damo VAD:https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/files ;Damo 标点:https://modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/files tools/asr/models
5 英文 / 日文 ASR(可选) https://huggingface.co/Systran/faster-whisper-large-v3 ;README 注明亦可选用 Systran 仓库下其他体积更小的模型 tools/asr/models

国内加速方案:

  • 官方脚本内置 --source HF-Mirror / ModelScope 两个国内友好源(README 官方支持,优先使用)。
  • 手动 pip / 模型下载场景,可使用 Hugging Face Hub 标准环境变量 HF_ENDPOINT 切换镜像(机制来自底层 huggingface_hub 库,环境变量说明见 https://huggingface.co/docs/huggingface_hub/guides/environment-variables ):
export HF_ENDPOINT=https://hf-mirror.com
  • 各版本专用目录(README 各版本发布说明,供升级时对照):v2 底模放 GPT_SoVITS/pretrained_models/gsv-v2final-pretrained;v3 底模(s1v3.ckpt、s2Gv3.pth、models--nvidia--bigvgan_v2_24khz_100band_256x 文件夹)放 GPT_SoVITS/pretrained_models;v4 底模(gsv-v4-pretrained/s2v4.pth、gsv-v4-pretrained/vocoder.pth)放 GPT_SoVITS/pretrained_models;v2Pro 底模(v2Pro/ 四个权重 + sv/pretrained_eres2netv2w24s4ep4.ckpt)放 GPT_SoVITS/pretrained_models;v5 底模保持 gsv-v5-pretrained 子目录,即最终路径 GPT_SoVITS/pretrained_models/gsv-v5-pretrained(README V5 Release Notes)。

RTX 3070 8GB 降级选择(README 官方支持项与可选项分列):

手段 官方依据
推理优先、先不做微调训练 README 未区分推理 / 训练显存数值(待实测);官方训练流程独立于推理页,显存压力通常高于推理,建议 8GB 卡先跑通零样本推理。
启用半精度 is_half=true README Docker 节:is_half 控制是否开启 fp16,GPU 支持时设 true 减少显存占用。
切换 CPU 设备 install.sh --device CPU / install.ps1 --Device CPU;README 实测环境表含 Python 3.9 + PyTorch 2.2.2 + CPU 组合(速度慢,README 标注 M4 CPU RTF 0.526 仅作参考)。
模型版本取舍 README V2Pro Notes:v2Pro 显存占用略高于 v2;v3/v4/v5 为后续架构。8GB 卡若新版本 OOM,可回退 v1/v2/v2Pro 底模(具体显存门槛 README 未公布,以本机实测为准)。

4. 关键配置(目录与开关速查)

配置项 默认值 / 路径 说明
预训练模型目录 GPT_SoVITS/pretrained_models README Pretrained Models 第 1 项
G2PW 目录 GPT_SoVITS/text/G2PWModel 仅中文 TTS 需要,解压改名后放入
UVR5 权重目录 tools/uvr5/uvr5_weights 可选;roformer 类模型须模型名与配置同名、文件名含 roformer(README 第 212 行规则)
ASR 模型目录 tools/asr/models 可选
数据集标注 .list 格式 vocal_path\|speaker_name\|language\|text README Dataset Format;语种字典 zh / ja / en / ko / yue;示例见表下注释
is_half GPU 支持时建议 true Docker 环境变量,控制 fp16 半精度

.list 标注行示例(README Dataset Format 原文示例,字段以竖线分隔):

D:\GPT-SoVITS\xxx/xxx.wav|xxx|en|I like playing Genshin.

5. 启动(README「Open WebUI」节命令)

# 主 WebUI(训练 + 推理入口),language 为可选参数
python webui.py
# 指定语言:
python webui.py zh
# 切换 v1:
python webui.py v1
python webui.py v1 zh

独立推理 WebUI:

python GPT_SoVITS/inference_webui.py
# 或执行 python webui.py 后在界面内进入推理页

04.5 使用方法

启动方式

方式 命令 / 操作 适用
整合包(Windows) 双击 go-webui.bat(独立推理:go-webui-v2.bat) 方案 A
主 WebUI(源码) python webui.py [language(optional)] 训练 + 推理一体化
独立推理 WebUI(源码) python GPT_SoVITS/inference_webui.py [language(optional)];或主 WebUI 内进入 1-GPT-SoVITS-TTS / 1C-inference 标签页 仅合成语音
UVR5 人声分离 WebUI(命令行) python tools/uvr5/webui.py "<infer_device>" <is_half> <webui_port_uvr5> 数据集预处理
数据集切片(命令行,README 原文) python audio_slicer.py --input_path "<原音频路径或目录>" --output_root "<切片输出目录>" --threshold <音量阈值> --min_length <最小时长> --min_interval <相邻切片最短间隔> --hop_size <音量曲线步长> 注意:当前 main 分支根目录未检索到该脚本(详见 04.6 第 7 条),切片优先在 WebUI 工具页完成
中文 ASR(命令行,README 原文) python tools/asr/funasr_asr.py -i <输入> -o <输出> 仅中文
非中文 ASR(命令行,README 原文) python ./tools/asr/fasterwhisper_asr.py -i <输入> -o <输出> -l <language> -p <precision> 英 / 日等

推理界面操作步骤(1-GPT-SoVITS-TTS / 1C-inference 页,README「Open Inference WebUI」节 + 官方 inference_webui.py 源码控件核对)

  1. 顶部「模型切换」下拉选择 GPT 模型与 SoVITS 模型,点「刷新模型路径」重载目录;首次使用选择整合包 / 底模默认模型即可。
  2. 「请上传并填写参考信息」区:上传 3–10 秒参考音频;在「参考音频的文本」框填写该音频的转写文本;「参考音频的语种」选对应语种。
  3. 「请填写需要合成的目标文本和语种模式」区:粘贴待合成文本;「需要合成的语种」选目标语种;「怎么切」选择长文本切分策略。
  4. 调整语速、句间停顿与 GPT 采样参数(参数表见下),点击「合成语音」,「输出的语音」播放器出现结果后可在线试听、下载。

参数说明表(来源:官方仓库 GPT_SoVITS/inference_webui.py Gradio 控件定义,行号对应源码)

界面控件 控件类型 / 取值范围 / 默认值 说明
GPT 模型列表 下拉,自动枚举 GPT_SoVITS/pretrained_models 下可用 GPT 权重 切换 GPT 模型;支持刷新
SoVITS 模型列表 下拉,自动枚举 SoVITS 权重 切换 SoVITS 模型;支持刷新
参考音频 音频上传,3–10 秒内(源码标签原文:「请上传3~10秒内参考音频,超过会报错!」) 零样本音色来源;v3/v4 版本多参考音频融合入口被隐藏(源码 file_count=multiple 控件 visible=False)
无参考文本模式 开关,默认关;v3 暂不支持,开启会报错(源码标签原文;v3/v4 版本控件禁用) 开启后无视参考文本;建议搭配微调后的 GPT 使用
参考音频的文本 多行文本框,5 行上限 填写参考音频原话转写文本
参考音频的语种 下拉,默认「中文」;可选:中文(all_zh)、英文(en)、日文(all_ja)、粤语(all_yue)、韩文(all_ko)、中英混合(zh)、日英混合(ja)、粤英混合(yue)、韩英混合(ko)、多语种混合(auto)、多语种混合(粤语)(auto_yue)(v2 字典;v1 字典不含粤语 / 韩文相关项) 参考音频语种识别模式
CFG 滑块 0–2,步长 0.05;v5dev 默认 1.30,其余默认 0.0;仅 v5 版本可见(源码 visible=model_version in V5_VERSIONS) CFG 引导强度
采样步数 单选 [4, 8, 16, 32];v5turbo 默认 4,v3 / v5dev 默认 32,其余默认 8;v3/v4 版本可见 源码标签:「采样步数,如果觉得电,提高试试,如果觉得慢,降低试试」
v3 超分开关 复选框,默认关;仅 v3 版本可见 源码标签:「v3 输出如果觉得闷可以试试开超分」
需要合成的文本 多行文本框,26 行上限 待合成文本
需要合成的语种 下拉,默认「中文」;语种选项同上表;源码标签补充:「限制范围越小判别效果越好」 目标合成语种
怎么切 下拉,默认「凑四句一切」;可选:不切 / 凑四句一切 / 凑 50 字一切 / 按中文句号。切 / 按英文句号.切 / 按标点符号切 长文本分段策略
冻结上次结果 复选框,默认关 源码标签:「是否直接对上次合成结果调整语速和音色。防止随机性。」
语速 滑块 0.6–1.65,步长 0.05,默认 1 源码标签:「语速调整,高为更快」
句间停顿秒数 滑块 0.1–0.5,步长 0.01,默认 0.3 句与句之间停顿时长
top_k 滑块 1–100,步长 1,默认 15 GPT 采样参数;源码提示「无参考文本时不要太低,不懂就用默认」
top_p 滑块 0–1,步长 0.05,默认 1 GPT 核采样阈值
temperature 滑块 0–1,步长 0.05,默认 1 采样温度
CUDA Graph 加速 复选框,默认 graph_available 判定结果,仅可用时显示 README V5 Notes:支持 cuda_graph 推理加速(感谢 @XXXXRT666 贡献)
flash_attn 加速 复选框,默认 flash_attn_supported 判定结果,仅支持时显示 README V5 Notes:支持 flash_attention 加速
输出的语音 音频播放器 合成结果试听 / 下载

微调训练流程(README「Finetune → Finetune」节,官方 WebUI 流程简述)

README 明确支持路径自动填充,顺序为:

  1. 填写音频路径;
  2. 将音频切片为小片段;
  3. 降噪(可选);
  4. ASR 自动转写;
  5. 人工校对 ASR 转写文本;
  6. 进入下一标签页,微调模型。

数据集标注格式见 04.4 配置表;训练所需 .list 三字段:音频路径|说话人名|语种|文本。

端到端示例:5 秒零样本合成一段中文博客口播

准备素材:一段 3–10 秒、单人、无背景音乐、口齿清晰的目标音色录音(ref.wav),用记事本写出其原话文字(例如「大家好,欢迎来到我的技术博客。」)。

操作步骤:

  1. 双击 go-webui.bat(整合包)或执行 python GPT_SoVITS/inference_webui.py(源码),打开 1-GPT-SoVITS-TTS / 1C-inference 页。
  2. 上传 ref.wav;「参考音频的文本」粘贴原话;「参考音频的语种」选「中文」。
  3. 「需要合成的文本」粘贴口播稿,例如:

「今天这期视频,我们来聊一聊几个适合本地部署的开源语音项目,从语音克隆到实时对话,全部跑在自己的电脑上。」

  1. 「需要合成的语种」选「中文」;「怎么切」选「凑四句一切」;语速保持 1;top_k 15、top_p 1、temperature 1 保持默认。
  2. 点击「合成语音」,在输出播放器试听;相似度不满意时:核对参考文本是否准确、换更干净的 3–10 秒参考音频;情绪 / 音色仍不满足可走 04.5 微调流程,用约 1 分钟目标音色数据微调(README Few-shot TTS 说明)。

命令行备用入口(README 原文):UVR5 分离伴奏、音频切片、中文 FunASR 标注、非中文 faster-whisper 标注命令见 04.5「启动方式」表。

04.6 常见坑

# 现象 原因 解决(官方依据 / 实践处理)
1 解压路径或素材路径含中文、空格、括号时,模型加载 / 音频读取报错或乱码 部分 Python 依赖与 Gradio 对非 ASCII 路径兼容性差(README 未单独成文,属实践高发问题) 将整合包与项目克隆到纯英文短路径(如 D:\GPT-SoVITS、~/GPT-SoVITS);参考音频、训练素材同样使用英文路径;audio_slicer.py 等命令行参数中的路径加引号并避免中文。
2 首次启动长时间卡在模型下载,或 HF 连接超时 / 断流 官方默认源为 Hugging Face Hub,国内直连不稳定 一键脚本部署时 --Source HF-Mirror 或 --Source ModelScope(README 官方参数);手动部署先 export HF_ENDPOINT=https://hf-mirror.com 再启动;G2PW / ASR 模型使用 README 给出的 ModelScope 镜像链接;语雀国内下载页用于手动获取整合包。
3 推理或训练时显存不足(CUDA out of memory) README 未公布各版本显存门槛;大模型 + 微调训练显存压力大 先跑通零样本推理;GPU 支持时开启半精度 is_half=true;换用更轻的 v1/v2/v2Pro 底模;极端情况 --device CPU 纯 CPU 运行(README 支持选项,速度慢)。8GB 3070 具体可跑版本需以本机实测为准,README 未给数值承诺。
4 参考音频上传后界面提示报错、合成异常 参考音频时长超过 10 秒(源码控件标签明确:「请上传3~10秒内参考音频,超过会报错!」) 截取 3–10 秒单人清晰片段再上传;多参考音频融合功能在 v3/v4 版本源码中已隐藏,勿在这些版本上依赖多参考文件。
5 v3 版本勾选「无参考文本模式」后报错 源码注明「v3 暂不支持该模式,使用了会报错」,且 v3/v4 版本该控件被禁用 v3/v4 下填写准确参考文本;需要无参考文本模式时使用支持该模式的版本与微调 GPT(源码标签提示建议搭配微调 GPT)。
6 Windows 启动提示缺少 ffmpeg.exe / ffprobe.exe,或音频处理环节报错 README Windows 手动安装节要求把两个 exe 放入项目根目录;README 未注明整合包是否内置,手动源码部署更可能需要自行补齐 按 README 链接下载 ffmpeg.exe、ffprobe.exe 放入项目根目录;同时安装 README 给出的 VS 2017 运行库;WSL2 内 sudo apt install ffmpeg libsox-dev。
7 执行 README 命令行切片命令 python audio_slicer.py 提示找不到文件 当前 main 分支根目录未检索到 audio_slicer.py(2026-10-25 对 404 候选路径逐一探测均为 404),README 命令路径可能滞后于代码重构 优先使用 WebUI 内的切片工具页完成数据集预处理;命令行切片可在仓库内 tools/ 目录下检索同名 / 近名脚本后再执行;脚本路径问题建议到官方 Issues 核对最新分支状态。

04.7 本节来源清单

# URL 用途 验证方式(2026-10-25)
1 https://github.com/RVC-Boss/GPT-SoVITS 官方仓库主页 curl HTML 200(GitHub 主页对 web_fetch 启用 robots.txt 限制,改用 raw README + curl 核验)
2 https://raw.githubusercontent.com/RVC-Boss/GPT-SoVITS/main/README.md 项目主 README(部署、模型目录、WebUI 命令、语种、环境表、各版本 Notes 的唯一事实来源) curl 200 下载后全文精读(501 行)
3 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/LICENSE MIT 许可证原文 curl raw LICENSE 200,开头 MIT License / Copyright (c) 2024 RVC-Boss 已核对
4 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/cn/README.md 中文 README(交叉核对) curl raw 200(490 行)
5 https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e 官方简体中文用户指南 curl 200
6 https://rentry.co/GPT-SoVITS-guide#/ 官方英文指南(README 徽章) 链接来自 README 英文徽章;本环境 curl 000 网络受限未连通,待用户侧浏览器复核
7 https://github.com/RVC-Boss/GPT-SoVITS/releases GitHub Releases 页(最新标签 20250606v2pro,2025-06-06 03:04:27Z) curl HTML 200,解析 datetime 标签核实发布时间
8 https://huggingface.co/lj1995/GPT-SoVITS-windows-package Windows 整合包官方 HF 仓库 curl 200;HF API siblings 文件清单已核对;各 .7z 文件体积经 HEAD content-length 实测
9 https://huggingface.co/lj1995/GPT-SoVITS-windows-package/resolve/main/GPT-SoVITS-v3lora-20250228.7z?download=true README 正文当前整合包下载链接 HEAD 200(302 → 200),content-length: 6754961256 字节
10 https://huggingface.co/lj1995/GPT-SoVITS 预训练底模官方 HF 仓库 curl 200;tree API 递归统计全版本约 6.4 GB
11 https://huggingface.co/XXXXRT/GPT-SoVITS-Pretrained/resolve/main/G2PWModel.zip G2PW 中文前端模型(HF) HEAD 200,content-length: 588856634 字节
12 https://www.modelscope.cn/models/XXXXRT/GPT-SoVITS-Pretrained/resolve/master/G2PWModel.zip G2PW 模型(ModelScope 国内镜像) curl 200
13 https://huggingface.co/lj1995/VoiceConversionWebUI/tree/main/uvr5_weights UVR5 人声分离权重目录 curl 200;tree API 实测约 594.4 MB
14 https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffmpeg.exe Windows 手动部署 FFmpeg 程序(README 链接) 链接来自 README Install FFmpeg 节,未在本环境下载二进制核验
15 https://modelscope.cn/models/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch/files 中文 ASR 模型(FunASR / ModelScope) curl 200
16 https://modelscope.cn/models/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch/files 中文 VAD 模型 curl 200
17 https://modelscope.cn/models/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch/files 中文标点模型 curl 200
18 https://huggingface.co/Systran/faster-whisper-large-v3 英 / 日 ASR 备用模型 curl 200
19 https://lj1995-gpt-sovits-proplus.hf.space/ 官方在线体验 Space(README 徽章) curl 200
20 https://colab.research.google.com/github/RVC-Boss/GPT-SoVITS/blob/main/Colab-WebUI.ipynb 官方 Colab 训练 Notebook(README 徽章) 链接来自 README Colab 徽章;本环境 curl 000 网络受限未连通,待用户侧复核
21 https://www.codewithgpu.com/i/RVC-Boss/GPT-SoVITS/GPT-SoVITS-Official 官方 AutoDL 云镜像入口(README「For users in China」) curl 200
22 https://hub.docker.com/r/xxxxrt666/gpt-sovits 官方 Docker 镜像仓库(README Docker 节) curl 200
23 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/install.sh Linux 一键安装脚本参数(--device / --source / --download-uvr5) curl raw 200,print_help 选项与取值已逐行核对
24 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/install.ps1 Windows PowerShell 安装脚本参数(--Device / --Source / --DownloadUVR5) curl raw 200,param(...) 校验集已核对
25 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/requirements.txt 依赖版本约束(numpy<2.0、librosa==0.10.2、transformers>=4.51,<5 等) curl raw 200,全文核对
26 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/GPT_SoVITS/inference_webui.py 推理 WebUI 控件与参数默认值来源 curl raw 200,1514 行,控件行号 1278–1444 已核对
27 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/tools/asr/funasr_asr.py 中文 ASR 命令行入口 curl raw 200
28 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/tools/asr/fasterwhisper_asr.py 非中文 ASR 命令行入口 curl raw 200
29 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/tools/uvr5/webui.py UVR5 WebUI 命令行入口 curl raw 200
30 https://huggingface.co/docs/huggingface_hub/guides/environment-variables HF_ENDPOINT 镜像环境变量机制说明(huggingface_hub 官方文档) curl 200
31 https://github.com/RVC-Boss/GPT-SoVITS/blob/main/docs/en/Changelog_EN.md 更新日志 curl 200
32 https://github.com/RVC-Boss/GPT-SoVITS.git 源码部署 git clone 地址(04.4 方案 B) 与 #1 同一仓库;curl HTML 200
33 https://github.com/user-attachments/assets/8c2a0e0a-7212-4b77-b5ef-2d192e09127f 04.2 节官方对比图原始地址(README 第 55 行 <img> 引用) curl 200 下载,file 校验 PNG 2400×1650、418,844 字节
34 https://github.com/RVC-Boss/GPT-SoVITS/assets/129054828/05bee1fa-bdd8-4d85-9350-80c060ab47fb 官方少样本微调演示视频(README「Unseen speakers few-shot fine-tuning demo」段,非图片素材) 链接逐字摘自 README;视频资源,未纳入本节图集
35 https://aka.ms/vs/17/release/vc_redist.x86.exe Windows 2017 运行库(README Install FFmpeg → Windows Users 节链接) 链接来自 README;微软官方下载地址,未在本环境下载安装包核验
36 https://huggingface.co/lj1995/VoiceConversionWebUI/blob/main/ffprobe.exe Windows 手动部署 FFprobe 程序(README Install FFmpeg 节链接) 链接来自 README;未在本环境下载二进制核验
37 https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/dkxgpiy9zb96hob4 README 指引的国内整合包 / 模型下载语雀页面 curl 200
38 https://hf-mirror.com HF 国内镜像站首页;HF_ENDPOINT=https://hf-mirror.com 镜像目标 首页 curl 200;模型文件解析在本环境超时(curl exit 28),镜像可用性以读者本地网络为准

待复核项:英文指南 rentry.co 链接、Colab Notebook 链接在本部署环境网络受限(curl 000),地址均逐字摘自官方 README 徽章,建议读者在国内浏览器 / Colab 环境内二次打开确认。

05. faster-whisper —— 基于 CTranslate2 推理引擎的高速语音识别(ASR)

适用场景说明:面向博主个人电脑本地部署,基线环境 Windows 10/11 + WSL2(Ubuntu 24.04)、RTX 3070 8GB / RTX 4090 24GB,另含 Linux 云服务器视角。faster-whisper 在博客工作流中通常承担「把参考音频 / 口播视频转写成标注文本」的上游角色(例如配合 04 节 GPT-SoVITS 制作训练集标注、自动生成字幕)。本节事实以官方 GitHub README、源码 WhisperModel 类与 PyPI 元数据为准。

05.1 项目定位与基本信息

项目 内容
一句话定位 用快速 Transformer 推理引擎 CTranslate2 对 OpenAI Whisper 模型做的重新实现:同等精度下速度最高可达 openai/whisper 的 4 倍、内存占用更低,CPU 与 GPU 上均可使用 8-bit 量化进一步提速省内存(README 原文:"up to 4 times faster than openai/whisper for the same accuracy while using less memory")。
开源许可 MIT License(Copyright © 2023 SYSTRAN)。出处:官方仓库 LICENSE 文件原文为 MIT License;PyPI 项目元数据 license: MIT(https://pypi.org/project/faster-whisper/ ,2026-10-25 复核)。
官方 GitHub 仓库 https://github.com/SYSTRAN/faster-whisper
官方文档 / 官网 无独立文档站;官方说明即仓库 README(https://github.com/SYSTRAN/faster-whisper ),参数细节以官方源码类实现为准:WhisperModel 与 transcribe 接口见 https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py ;量化类型说明见 CTranslate2 官方文档 https://opennmt.net/CTranslate2/quantization.html 。PyPI 发行页:https://pypi.org/project/faster-whisper/
版本信息 截至 2026-10-25 官方 PyPI 最新版:1.2.1(来源:https://pypi.org/pypi/faster-whisper/json ,info.version 字段;requires_python: >=3.9)。README benchmark 基准版本为 v1.1.0。
支持语种 取决于所选 Whisper 模型:多语言模型(tiny/base/small/medium/large-v2/large-v3/turbo 等)覆盖 Whisper 官方多语种清单;.en 系列为英语专用;语言码如 zh(中文)、en、ja、ko 等,未指定时模型自动检测音频前 30 秒语种(README + transcribe docstring)。

05.2 官方图片

经逐一核查:官方 README、仓库文件树(codeload tarball 全量清单)、PyPI 项目描述中均未包含任何静态 logo 或界面截图,仅有的图像元素为 CI 徽章与 PyPI 版本徽章(徽章非项目配图,仅作状态标识)。按照「禁止用 AI 生成图或非官方图冒充」的要求,本节不插入图片,待官方后续在仓库 / README 补充视觉素材后再增补。

核查项 记录
README 图像引用 仅 CI 状态徽章与 PyPI 版本徽章两枚(README 第 1 行,PyPI 描述同步核对;徽章地址见 05.7 来源清单 #20、#21)
仓库图片文件 对 SYSTRAN/faster-whisper master 分支 codeload tarball 做全量文件名过滤(png/jpg/jpeg/svg/webp/gif),结果为空;docs/ 目录下亦无图片
处理结论 无官方图片可下载;本节不做占位图、不使用第三方 logo。

05.3 环境要求

维度 官方说明(README「Requirements」「GPU」节 + PyPI 元数据)
操作系统 跨平台;README 提供 Linux(pip 安装 NVIDIA 库)、Windows / Linux(Purfview 独立库压缩包)、CPU 等多条路径;WSL2(Ubuntu 24.04)按 Linux 路径部署。CPU 基准测试环境为 Intel Core i7-12700K、8 线程(README Small model on CPU 节)。
GPU 与显存 GPU 执行需安装 NVIDIA 库:cuBLAS for CUDA 12 与 cuDNN 9 for CUDA 12。README 明确提示:最新版 ctranslate2 仅支持 CUDA 12 + cuDNN 9;CUDA 11 + cuDNN 8 需降级 ctranslate2==3.24.0;CUDA 12 + cuDNN 8 需降级 ctranslate2==4.4.0。GPU 基准测试(large-v2,RTX 3070 Ti 8GB,CUDA 12.4)实测显存见 05.3 末尾官方 benchmark 表;README 未公布其他档位的官方显存数值。
内存 CPU 基准测试(small 模型,i7-12700K 8 线程):fp32 占 2257 MB 内存、int8 占 1477 MB 内存(README Small model on CPU 表);其他档位内存占用 README 未公布。
依赖 Python 3.9 或更高(README「Python 3.9 or greater」;PyPI requires_python >=3.9)。与 openai-whisper 不同,系统不需要单独安装 FFmpeg:音频由 Python 库 PyAV 解码,PyAV 在包内打包了 FFmpeg 库(README 原文:"FFmpeg does not need to be installed on the system")。GPU 侧依赖 ctranslate2、nvidia-cublas-cu12、nvidia-cudnn-cu12==9.*(Linux pip 方式)。
磁盘空间(含模型权重体积,本环境经 HF tree API 实测) 模型首次运行时按所选档位自动下载到 Hugging Face 缓存;各 CT2 模型 model.bin 体积如下表。另需预留 PyPI 包与 CUDA 库空间(README 未公布具体数值)。

模型档位选择表(三类口径分列,避免混用):

档位 参数量(openai/whisper 官方 README) CT2 model.bin 实测体积(HF tree/main API,2026-10-25) 原版 PyTorch 参考显存(openai/whisper README,fp32 基线,非 CT2 实测) 相对速度(openai/whisper README,A100 英文语音,以 large 为 1×) 下载名(WhisperModel 首参数)
tiny 39 M 72.0 MB(仓库合计 74.6 MB) ~1 GB ~10× tiny / tiny.en
base 74 M 138.5 MB(141.0 MB) ~1 GB ~7× base / base.en
small 244 M 461.1 MB(463.7 MB) ~2 GB ~4× small / small.en
medium 769 M 1457.1 MB(1459.7 MB) ~5 GB ~2× medium / medium.en
large-v2 1550 M(large 档) 2943.9 MB(2946.5 MB) ~10 GB(large 档参考值) ~1× large-v2
large-v3 1550 M(large 档) 2944.3 MB(2947.7 MB) ~10 GB(large 档参考值) ~1× large-v3 / large
turbo 809 M 未在 Systran 仓库单列(README 支持 turbo / large-v3-turbo 下载名) ~6 GB ~8× turbo / large-v3-turbo

口径说明:① 参数量、原版参考显存、相对速度三列来自 openai/whisper 官方 README「Available models and languages」表,描述的是原版 PyTorch 实现基线,不能直接等同于 faster-whisper/CT2 显存占用;② CT2 体积列为 HF Systran 仓库 tree/main API 实测;③ CT2 引擎的真实显存 / 速度以 05.3 下方官方 benchmark 表(仅 large-v2 GPU、small CPU 两组实测)为准,其余档位 README 未公布 CT2 实测值。

官方 benchmark 实测表(README「Benchmark」节原文数据,13 分钟英文音频,RTX 3070 Ti 8GB / CUDA 12.4;CPU 为 i7-12700K 8 线程):

实现 精度 beam size GPU 耗时 GPU 显存 / CPU 内存
openai/whisper(对照) fp16 5 2m23s 4708 MB
whisper.cpp(Flash Attention,对照) fp16 5 1m05s 4127 MB
transformers(SDPA,对照) fp16 5 1m52s 4960 MB
faster-whisper fp16 5 1m03s 4525 MB
faster-whisper(batch_size=8) fp16 5 17s 6090 MB
faster-whisper int8 5 59s 2926 MB
faster-whisper(batch_size=8) int8 5 16s 4500 MB
faster-whisper(CPU,small,fp32) fp32 5 2m37s 2257 MB RAM
faster-whisper(CPU,small,int8) int8 5 1m42s 1477 MB RAM

说明:上表为 README 公布的官方实测;除 large-v2(GPU)与 small(CPU)外,其余档位显存 / 内存数值 README 未给出,不做推算填充。

05.4 最详细部署步骤(Windows 与 WSL2 双视角)

1. 依赖安装

通用前置:安装 Python 3.9+(README 要求)。建议使用虚拟环境隔离:

# WSL2 Ubuntu / Linux 云服务器
python3 -m venv .venv
source .venv/bin/activate
# Windows PowerShell
python -m venv .venv
.\.venv\Scripts\Activate.ps1

NVIDIA GPU 库安装(README「GPU」节三种官方方式,按系统选一):

  • 方式一:Docker(README 官方说明):使用官方 NVIDIA CUDA 镜像 nvidia/cuda:12.3.2-cudnn9-runtime-ubuntu22.04,其中已含 cuBLAS、cuDNN。
  • 方式二:Linux 下 pip 安装(README 原文,仅 Linux):

```bash pip install nvidia-cublas-cu12 nvidia-cudnn-cu12==9.*

# README 原文要求:启动 Python 前先设置 LD_LIBRARY_PATH export LD_LIBRARY_PATH=$(python3 -c 'import os, nvidia.cublas, nvidia.cudnn; print(os.path.dirname(nvidia.cublas.path[0]) + "/cublas/lib:" + os.path.dirname(nvidia.cudnn.path[0]) + "/cudnn/lib")') ```

  • 方式三:Purfview 独立库压缩包(Windows & Linux):README 指引从 Purfview/whisper-standalone-win 的 libs release 下载所需 NVIDIA 库单文件压缩包,解压后把目录加入系统 PATH。

版本降级提示(README 原文):若本机为 CUDA 11 + cuDNN 8,执行 pip install --force-reinstall ctranslate2==3.24.0;若为 CUDA 12 + cuDNN 8,执行 pip install --force-reinstall ctranslate2==4.4.0(或在 requirements.txt 中固定版本)。

注意:README 明确 系统无需安装 FFmpeg;若习惯在 Windows PATH 中保留全局 FFmpeg 也不会冲突,但排查问题时不要把「缺 FFmpeg」当成 faster-whisper 的必需报错项。

2. 项目下载 / 安装(README「Installation」节,唯一推荐方式:PyPI)

pip install faster-whisper

其他官方安装方式(README「Other installation methods」折叠节):

# 安装 master 分支最新代码
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz"

# 安装指定 commit(示例 commit 取自 README)
pip install --force-reinstall "faster-whisper @ https://github.com/SYSTRAN/faster-whisper/archive/a4f1cc8f11433e454c3934442b5e1a4ed5e865c3.tar.gz"

3. 模型 / 权重下载(官方来源 + 国内加速 + 3070 8GB 档位选择)

官方来源:加载 WhisperModel("large-v3") 这类档位名时,对应 CTranslate2 模型自动从 Hugging Face Hub 的 Systran 组织仓库 下载(README「Model conversion」节原文:"the corresponding CTranslate2 model is automatically downloaded from the Hugging Face Hub")。模型清单与体积见 05.3 实测表。

国内加速:faster-whisper 底层使用 huggingface_hub 下载,可通过标准环境变量切换镜像(机制说明:https://huggingface.co/docs/huggingface_hub/guides/environment-variables ):

# Linux / WSL2(写入 ~/.bashrc 可持久化)
export HF_ENDPOINT=https://hf-mirror.com
# Windows PowerShell
$env:HF_ENDPOINT="https://hf-mirror.com"

也可在代码中用 download_root= 指定本地模型目录,或先在网络通畅环境下载好 model.bin 等文件,再用本地目录路径加载(README「Load a converted model」节):

from faster_whisper import WhisperModel

model = WhisperModel("/path/to/local/model-dir")

RTX 3070 8GB 档位选择(README 官方 benchmark 同类对照 + 明确边界):

场景 建议档位 / 精度 依据与边界
追求精度、GPU 显存充裕(4090 24GB) large-v3 + device="cuda" + compute_type="float16" README 示例默认写法;large-v2 官方实测 fp16 4525MB、int8 2926MB(3070 Ti 8GB);README 未给出 large-v3 独立显存实测,large-v3 实际占用以本机 nvidia-smi 实测为准
RTX 3070 8GB 稳妥配置 medium 或 small + fp16;large-v2 用 int8_float16 或 int8 large-v2 int8 官方实测 2926MB;8GB 显存避开 batch_size=8(fp16 6090MB / int8 4500MB,官方 benchmark 数值);large-v3 在 8GB 上的可行性 README 未给出数据,需实测
纯 CPU / 云服务器无 GPU small 或 base + device="cpu" + compute_type="int8" README 示例 device="cpu", compute_type="int8";small CPU int8 官方实测 1477MB RAM
长视频批量提速 BatchedInferencePipeline + batch_size=8(显存允许时) README「Batched Transcription」示例;显存占用按官方 benchmark 表预留

4. 关键配置(代码初始化参数,来源:官方 WhisperModel.__init__ 源码签名)

参数 类型 / 默认值 说明(源码 docstring 原文要点)
model_size_or_path str,必填 档位名(tiny、tiny.en、base、base.en、small、small.en、distil-small.en、medium、medium.en、distil-medium.en、large-v1、large-v2、large-v3、large、distil-large-v2、distil-large-v3、large-v3-turbo、turbo)、转换后模型本地目录,或 HF Hub 上的 CT2 模型 ID
device str,默认 "auto" 计算设备:cpu / cuda / auto
device_index int 或 list[int],默认 0 显卡编号;可传列表 [0,1,2,3] 多卡并行,配合多线程 transcribe() 调用
compute_type str,默认 "default" 计算精度:float16 / int8_float16 / int8 / float32 等,取值见 CTranslate2 量化文档
cpu_threads int,默认 0 CPU 线程数(默认 4);非零值覆盖 OMP_NUM_THREADS 环境变量
num_workers int,默认 1 多线程调用 transcribe() 时的并行 worker 数,提升吞吐但增加内存
download_root Optional[str],默认 None 模型保存目录;缺省走标准 Hugging Face 缓存目录
local_files_only bool,默认 False 为 True 时不发起下载,仅返回本地缓存模型
revision Optional[str],默认 None HF Hub 分支 / 标签 / commit 修订号
use_auth_token Optional[Union[str, bool]],默认 None Hugging Face 鉴权 token,或 True 使用 HF 配置目录中已保存的 token

5. 启动(官方 README 最小可运行命令序列)

# 确认环境已激活,模型首次运行自动下载;无系统 FFmpeg 依赖
python your_transcribe_script.py

05.5 使用方法

启动方式

faster-whisper 是 Python 库,无自带 WebUI;通过 WhisperModel 初始化 + model.transcribe(...) 调用。README 官方最小示例(原文照录):

from faster_whisper import WhisperModel

model_size = "large-v3"

# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")

# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")

segments, info = model.transcribe("audio.mp3", beam_size=5)

print("Detected language '%s' with probability %f" % (info.language, info.language_probability))

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

README 重要警告:segments 是生成器(generator),只有在迭代它时转写才真正开始;必须放入 list(segments) 或 for 循环中执行(README「Warning」段原文):

segments, _ = model.transcribe("audio.mp3")
segments = list(segments)  # The transcription will actually run here.

transcribe() 参数说明表(来源:官方 faster_whisper/transcribe.py 第 781–825 行签名 + docstring)

参数 默认值 说明(源码 docstring 要点)
audio 必填 音频文件路径、文件类对象,或音频波形 numpy 数组
language None 音频语种码(如 "en"、"fr"、"zh");未设置时在音频前 30 秒自动检测
task "transcribe" 任务:transcribe(转写)或 translate(翻译成英文)
log_progress False 是否显示进度条
beam_size 5 解码 beam 宽度;注意 openai-whisper 默认 beam_size 为 1,跨实现对比时需对齐(README「Comparing performance」节)
best_of 5 非零温度采样时的候选数量
patience 1 beam search 耐心因子
length_penalty 1 指数长度惩罚常数
repetition_penalty 1 已生成 token 分数惩罚(>1 惩罚重复)
no_repeat_ngram_size 0 禁止重复 n-gram 大小,0 关闭
temperature [0.0, 0.2, 0.4, 0.6, 0.8, 1.0] 采样温度;失败时按 compression_ratio_threshold 或 log_prob_threshold 依次重试
compression_ratio_threshold 2.4 gzip 压缩比高于该值视为失败
log_prob_threshold -1.0 采样 token 平均 log probability 低于该值视为失败
no_speech_threshold 0.6 无语音概率高于该值且平均 log prob 低于阈值时,判定该段为静音
condition_on_previous_text True 为 True 时把上一段输出作为下一段 prompt;关闭可降低重复循环 / 时间戳错乱概率,但跨段一致性可能下降
prompt_reset_on_temperature 0.5 温度超过该值时重置 prompt
initial_prompt None 初始提示词(字符串或 token 序列);可用于注入专有名词、领域术语或中文标点习惯
prefix None 文本前缀
suppress_blank True 是否抑制空 token
suppress_tokens [-1] 抑制的 token 列表
without_timestamps False 是否不带时间戳输出
max_initial_timestamp 1.0 初始时间戳上限
word_timestamps False 是否输出词级时间戳(配合 segment.words 使用,README「Word-level timestamps」示例)
prepend_punctuations "\"'“¿([{-" 前附着标点
append_punctuations "\"'.。,,!!??::”)]}、" 后附着标点
multilingual False 多语言段内语言检测
vad_filter False 是否启用内置 Silero VAD 过滤无声片段;批处理模式默认开启(README「VAD filter」节)
vad_parameters None VAD 参数字典,如 dict(min_silence_duration_ms=500);默认仅移除超过 2 秒的静音,可调参数见源码 faster_whisper/vad.py
max_new_tokens None 单段最大新生成 token 数
chunk_length None 分块长度
clip_timestamps "0" 时间戳裁剪
hallucination_silence_threshold None 幻觉静音阈值
hotwords None 热词
language_detection_threshold 0.5 语种检测阈值
language_detection_segments 1 参与语种检测的段数

其他官方用法片段(README 原文)

批量转写(Batched InferencePipeline,README「Batched Transcription」节):

from faster_whisper import WhisperModel, BatchedInferencePipeline

model = WhisperModel("turbo", device="cuda", compute_type="float16")
batched_model = BatchedInferencePipeline(model=model)
segments, info = batched_model.transcribe("audio.mp3", batch_size=16)

for segment in segments:
    print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))

词级时间戳(README「Word-level timestamps」节):

segments, _ = model.transcribe("audio.mp3", word_timestamps=True)

for segment in segments:
    for word in segment.words:
        print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))

VAD 过滤(README「VAD filter」节):

segments, _ = model.transcribe(
    "audio.mp3",
    vad_filter=True,
    vad_parameters=dict(min_silence_duration_ms=500),
)

蒸馏模型 distil-large-v3(README「Faster Distil-Whisper」节):

from faster_whisper import WhisperModel

model_size = "distil-large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe(
    "audio.mp3", beam_size=5, language="en", condition_on_previous_text=False
)

端到端示例:中文口播音频转写并导出带时间戳字幕(.txt + .srt)

适用场景:把博客录制的口播音视频转成文字稿与 SRT 字幕;3070 8GB 选用 medium + int8 稳妥起步,4090 可换 large-v3 + fp16。

# transcribe_zh.py —— 官方 API 组合示例,依赖:pip install faster-whisper
from faster_whisper import WhisperModel

# 1) 初始化模型:3070 8GB 推荐 medium + int8_float16;4090 可改 large-v3 + float16
model = WhisperModel(
    "medium",
    device="cuda",
    compute_type="int8_float16",
    # cpu_threads=4,          # 纯 CPU 时按需设置
    # download_root="./models", # 指定本地模型目录
)

# 2) 转写:固定中文、beam_size 5、开启 VAD、注入领域提示词、开启词级时间戳
segments, info = model.transcribe(
    "koubo.mp3",
    language="zh",                 # 固定中文;自动检测则留 None
    beam_size=5,
    vad_filter=True,               # 过滤静音片段
    vad_parameters=dict(min_silence_duration_ms=500),
    initial_prompt="以下是技术博客普通话口播内容,包含开源、语音合成、深度学习等术语。",
    word_timestamps=True,          # 词级时间戳,便于精细校对字幕
    condition_on_previous_text=True,
)

print("检测语种:%s(概率 %.3f)" % (info.language, info.language_probability))

# 3) 收集段落到列表(generator 必须迭代后才真正转写)
segments = list(segments)

# 4a) 导出纯文本稿
with open("koubo.txt", "w", encoding="utf-8") as f:
    for seg in segments:
        f.write(seg.text.strip() + "\n")

# 4b) 导出 SRT 字幕(段级时间戳)
def fmt_ts(seconds: float) -> str:
    ms = int((seconds % 1) * 1000)
    s = int(seconds)
    h, rem = divmod(s, 3600)
    m, sec = divmod(rem, 60)
    return f"{h:02d}:{m:02d}:{sec:02d},{ms:03d}"

with open("koubo.srt", "w", encoding="utf-8") as f:
    for idx, seg in enumerate(segments, start=1):
        f.write(f"{idx}\n{fmt_ts(seg.start)} --> {fmt_ts(seg.end)}\n{seg.text.strip()}\n\n")

# 5) 控制台预览
for seg in segments:
    print("[%.2fs -> %.2fs] %s" % (seg.start, seg.end, seg.text.strip()))

运行:

export HF_ENDPOINT=https://hf-mirror.com   # 国内镜像(WSL2/Linux)
python transcribe_zh.py

命令行工具补充:README「Community integrations」列出的 whisper-ctranslate2 是基于 faster-whisper 的第三方 CLI,接口兼容 openai-whisper 客户端;属社区项目,非官方组件,需要独立查阅其仓库说明。

05.6 常见坑

# 现象 原因 解决(README 官方依据)
1 启动报 cuBLAS / cuDNN 加载错误(library not found / 版本不匹配) 最新版 ctranslate2 仅支持 CUDA 12 + cuDNN 9;本机 CUDA / cuDNN 版本不在支持范围 按 README「GPU」节对照处理:CUDA 11 + cuDNN 8 降级 ctranslate2==3.24.0;CUDA 12 + cuDNN 8 降级 ctranslate2==4.4.0;Linux 用 nvidia-cublas-cu12 + nvidia-cudnn-cu12==9.* pip 包并设置 LD_LIBRARY_PATH;Windows 从 Purfview libs release 取库加入 PATH。
2 首次运行卡在模型下载,或 HF 连接超时 模型默认从 huggingface.co/Systran 自动下载,国内直连不稳 先 export HF_ENDPOINT=https://hf-mirror.com(Linux/WSL2)或 $env:HF_ENDPOINT="https://hf-mirror.com"(Windows);或在网络通畅环境用 download_root= 预下载模型目录后离线加载。
3 GPU 转写时报显存不足(CUDA out of memory) fp16 大模型 + 大批量超显存;README benchmark 中 batch_size=8 会把显存从 4525MB 抬到 6090MB(fp16) 降精度:compute_type="int8_float16" 或 "int8"(large-v2 int8 官方实测 2926MB);换 medium / small 档位;关闭 batch_size=8 批处理;最终退路 device="cpu", compute_type="int8"。
4 脚本跑完只输出标题,没有任何转写文本 segments 是惰性生成器,未迭代就结束(README「Warning」原文提示) 先 segments = list(segments) 或在 for 循环中消费再做导出;不要在迭代前把 segments 写入文件。
5 音频解码失败,误装系统 FFmpeg 仍报错 README 明确不依赖系统 FFmpeg,解码由 PyAV 内置库完成;真实原因通常是 PyAV 版本与音频编码 / 采样率不匹配 升级 faster-whisper 与 av(requirements 约束 av>=11);确认音频本身可被其他播放器打开;系统 FFmpeg 缺失不是 faster-whisper 的报错原因,排查方向应对准 PyAV 与文件格式。
6 长音频出现重复复读、时间戳整体后移 condition_on_previous_text=True 时上一段文本持续作为 prompt,易陷入失败循环(README 参数说明原文) 设 condition_on_previous_text=False;配合 vad_filter=True 静音过滤;必要时调 no_speech_threshold、compression_ratio_threshold;专有名词用 initial_prompt 提前给出。

05.7 本节来源清单

# URL 用途 验证方式(2026-10-25)
1 https://github.com/SYSTRAN/faster-whisper 官方仓库主页 curl HTML 200(GitHub 主页受 robots.txt 限制 web_fetch,改用 raw README 精读 + curl 核验)
2 https://raw.githubusercontent.com/SYSTRAN/faster-whisper/master/README.md 项目 README(定位、Requirements、GPU 库、安装、用法、benchmark、VAD、批处理、模型转换的唯一事实来源) curl 200 下载后全文精读(297 行)
3 https://github.com/SYSTRAN/faster-whisper/blob/master/LICENSE MIT 许可证原文 curl raw LICENSE 200,开头 MIT License / Copyright (c) 2023 SYSTRAN 已核对
4 https://pypi.org/project/faster-whisper/ PyPI 发行页(版本 1.2.1、license MIT、Python >=3.9) curl 200;https://pypi.org/pypi/faster-whisper/json 复核 info.version=1.2.1、requires_python>=3.9、license=MIT
5 https://github.com/SYSTRAN/faster-whisper/blob/master/faster_whisper/transcribe.py WhisperModel.__init__ 与 transcribe() 签名、默认值、docstring 来源 curl raw 200,1986 行;初始化签名 622–672 行、转写签名 781–825 行已逐行核对
6 https://github.com/OpenNMT/CTranslate2/ 推理引擎上游仓库(README 引用) curl 200
7 https://opennmt.net/CTranslate2/quantization.html compute_type 量化类型官方文档 curl 200
8 https://github.com/PyAV-Org/PyAV 音频解码库(README「FFmpeg does not need to be installed」依据) curl 200
9 https://developer.nvidia.com/cublas cuBLAS for CUDA 12 官方下载页(README GPU 节链接) curl 200
10 https://developer.nvidia.com/cudnn cuDNN 9 for CUDA 12 官方下载页(README GPU 节链接) curl 200
11 https://github.com/Purfview/whisper-standalone-win/releases/tag/libs Windows/Linux 独立 NVIDIA 库压缩包(README 折叠节方式三) curl 200
12 https://github.com/snakers4/silero-vad 内置 VAD 模型上游仓库(README VAD filter 节) curl 200
13 https://huggingface.co/Systran CT2 模型自动下载组织仓库(README Model conversion 节) curl 200
14 https://huggingface.co/Systran/faster-whisper-tiny tiny 模型仓库(72.0 MB model.bin) curl 200;tree API 实测体积
15 https://huggingface.co/Systran/faster-whisper-large-v3 large-v3 模型仓库(2944.3 MB model.bin) curl 200;tree API 实测体积
16 https://github.com/openai/whisper 原版 Whisper 上游;模型参数量、原版参考显存、A100 相对速度对照表来源 curl 200;raw README「Available models and languages」表格已核对(表内数值为原版 PyTorch 基线,非 CT2 实测,文中已标注)
17 https://huggingface.co/docs/huggingface_hub/guides/environment-variables HF_ENDPOINT 镜像环境变量机制官方文档 curl 200
18 https://huggingface.co/distil-whisper/distil-large-v3 README「Faster Distil-Whisper」引用的蒸馏模型卡 链接来自 README;未单独抓取模型卡内容,参数以 README 示例为准
19 https://github.com/Softcatala/whisper-ctranslate2 README Community integrations 所列第三方 CLI(非官方组件,文中已标注) curl 200
20 https://github.com/SYSTRAN/faster-whisper/archive/refs/heads/master.tar.gz README「Install the master branch」安装源 链接来自 README 折叠节;未在本环境执行安装
21 https://github.com/SYSTRAN/faster-whisper/archive/a4f1cc8f11433e454c3934442b5e1a4ed5e865c3.tar.gz README「Install a specific commit」示例 commit 安装源 链接来自 README 折叠节;commit 哈希逐字摘自 README
22 https://hf-mirror.com HF 国内镜像站首页;HF_ENDPOINT=https://hf-mirror.com 镜像目标 首页 curl 200;模型文件解析在本环境超时,镜像可用性以读者本地网络为准
23 https://github.com/SYSTRAN/faster-whisper/workflows/CI/badge.svg README 第 1 行 CI 徽章(状态标识,非项目配图) 随 README 一并核验
24 https://badge.fury.io/py/faster-whisper.svg README 第 1 行 PyPI 版本徽章(状态标识,非项目配图) 随 README 一并核验

待复核项:各档位 CT2 模型在 RTX 3070 8GB 上的独立显存占用,官方 README 仅公布 large-v2(GPU)与 small(CPU)实测数据;其余档位数值请以本机 nvidia-smi 实测为准,本节未做外推估算。

06. LiveTalking —— 实时交互流式数字人引擎,文本/音频驱动数字人实时口型同步并推流输出

适用场景:个人电脑本地部署数字人口播、虚拟主播/直播带货、AI 客服、在线教育分身、大屏讲解、短视频批量出镜。本节命令以官方 README、官方文档站、官方源码(config.py、app.py、docs/api.md)为准;未被官方文档写明的数值会在表格中显式标注"官方未列明 / 待验证"。

06.1 项目定位与基本信息

项目 内容
一句话定位 实时交互流式数字人引擎,通过文本或语音驱动虚拟形象说话,结合 LLM 实现音视频同步对话,支持 WebRTC / RTMP / 虚拟摄像头输出(来源:官方 README 标题与"使用场景"章节)
开源许可 Apache License 2.0。出处:官方仓库 LICENSE 文件(https://raw.githubusercontent.com/lipku/LiveTalking/main/LICENSE,web_fetch 全文核验为 Apache-2.0 原文,版权署名 livetalking@lipku);README 顶部徽章同时标注 license-Apache 2(https://github.com/lipku/LiveTalking/blob/main/README.md)
官方 GitHub 仓库 https://github.com/lipku/LiveTalking(curl HEAD 状态码 200,2026-10-25 核验)
国内镜像仓库 Gitee:https://gitee.com/lipku/LiveTalking(curl 200);GitCode:https://gitcode.com/lipku/LiveTalking(curl 200,README"国内镜像"章节给出)
官方文档/官网 https://doc.livetalking.ai —— 官方使用说明、FAQ、API 文档入口(curl 200);API 明细见仓库 docs/api.md;FAQ:https://doc.livetalking.ai/docs/faq/(curl 200)
版本信息 截至 2026-10,GitHub Releases 最新标签 v2.0.4(来源:README release 徽章渲染值 https://img.shields.io/github/v/release/lipku/LiveTalking,2026-10-25 curl 核验;Release 列表页 https://github.com/lipku/LiveTalking/releases。本次撰写时 GitHub API 限流,发布日期未能核验,待验证)
官方测试环境 README"1. 安装"声明:已在 Ubuntu 22.04、Python 3.12、PyTorch 2.9.1、CUDA 12.8 测试通过;README 徽章标注 python-3.10+、os-linux, win, mac
官方后端模型 README Features 列出:ernerf、musetalk、wav2lip、Ultralight-Digital-Human;当前 main 分支 app.py 注册并可直接启动的 avatar 插件为 musetalk / wav2lip / ultralight(来源:app.py 中 _avatar_modules 字典);ernerf 模型位于独立 git 分支 ernerf-rtmp(来源:官方文档 3.1.3 节)
输出方式 README Features:WebRTC、RTMP、虚拟摄像头;config.py 中 --transport 可选 rtcpush / webrtc / rtmp / virtualcam,默认 webrtc

06.2 官方图片

下图为官方仓库 README 中使用的官方 logo 与 Web 首页界面截图,均从官方仓库 assets/ 目录原始下载,未做任何二次生成或加工。

图 06-1 LiveTalking 官方 Logo

LiveTalking 官方 Logo

图 06-2 LiveTalking Web 首页界面(官方 README "2.4 Web 页面" 引用图)

LiveTalking Web 首页界面

备用官方架构图(已下载备查,本节未在正文引用):数据流图 https://raw.githubusercontent.com/lipku/LiveTalking/main/assets/dataflow.png,本地保存为 https://zhouruolin.cn/upload/06_livetalking_dataflow.png,file 校验为 PNG image data, 2476 x 262,84,053 字节。

06.3 环境要求

下表"官方依据"列标注信息是否直接来自官方 README / 文档 / 源码;官方未给出的数值不做推算填充。

维度 要求 / 说明 官方依据
操作系统 README 徽章:linux, win, mac;官方实测环境为 Ubuntu 22.04;官方同时提供 Windows 整合包(README 2.5 节)。本机推荐路径:WSL2(Ubuntu 24.04)内运行源码;Windows 原生可使用官方整合包 README 徽章 + README"1. 安装" + README 2.5 节
Python 徽章 python-3.10+;安装命令使用 Python 3.12(conda create -n livetalking python=3.12) README"1. 安装"
PyTorch / CUDA README 测试组合:PyTorch 2.9.1、torchvision 0.24.1、torchaudio 2.9.1、CUDA 12.8;若本机 nvidia-smi 显示的 CUDA 版本不同,README 要求按 PyTorch 官网(https://pytorch.org/get-started/previous-versions)选择对应版本 README"1. 安装"(原文:"如果 CUDA 版本不为 12.8(运行 nvidia-smi 确认),请根据 PyTorch 官网安装对应版本")
GPU 与显存(官方性能表) wav2lip256:RTX 3060 → 60 FPS,RTX 3080Ti → 120 FPS;官方推荐 RTX 3060 及以上。musetalk:RTX 3080Ti → 42 FPS,RTX 3090 → 45 FPS,RTX 4090 → 72 FPS;官方推荐 RTX 3080Ti 及以上。官方未在 README 给出各模型显存占用 GB 数值(待实测确认) README"6. 性能指标"实时推理性能表
本机显卡适配说明 RTX 3070 8GB:跑 wav2lip256 后端高于官方推荐的 3060 起步线,可运行;musetalk 后端官方推荐 3080Ti 起步,3070 不在官方测试清单内,官方未承诺帧率,建议先跑 wav2lip 后端、必要时调低 --batch_size。RTX 4090 24GB:处于官方 musetalk 测试型号(4090 72 FPS)之上,余量充足。以上 3070 判断为基于官方性能表的对照说明,非官方实测结论 README 性能表(对照得出,已注明)
内存 官方 README / 文档未列明内存容量要求(待验证)。README 性能指标说明:"每路视频压缩消耗 CPU,分辨率越高 CPU 消耗越大;每路口型推理消耗 GPU;不说话时并发数取决于 CPU,同时说话并发数取决于 GPU" README"6. 性能指标"
必备依赖 核心依赖见官方 requirements.txt:numpy、scipy、resampy、soundfile==0.12.1、einops、transformers、edge_tts、flask、opencv-python-headless、aiortc、aiohttp_cors、diffusers、accelerate、librosa、openai、websockets==12.0、dashscope、python-dotenv、pyyaml、tqdm 等(以仓库 requirements.txt 原文为准) https://raw.githubusercontent.com/lipku/LiveTalking/main/requirements.txt(web_fetch 核验)
ffmpeg README 源码安装命令未单独列出 ffmpeg;官方 FAQ 第 6 条:RTMP 推流时 ffmpeg 版本需包含 libx264("运行一下 ffmpeg,打印的信息里需要有 libx264,如果没有肯定不行");FAQ 给出的官方安装方式为 conda install ffmpeg(清华 conda-forge 源)。WSL2 Ubuntu 也可用系统包管理器安装(此为发行版通用做法,非 README 原文命令) FAQ https://doc.livetalking.ai/docs/faq/(web_fetch 核验)
磁盘空间 / 模型权重体积 官方 README 与网盘页面未列明各权重文件体积(待下载后实测确认)。官方提供两份模型打包:wav2lip 运行所需模型(含 s3fd.pth、wav2lip256.pth、示例数字人 wav2lip256_avatar1.tar.gz);musetalk 后端模型包(含 musetalk 权重与 musetalk_avatar1.tar.gz) README 2.1 节 + 官方文档 3.1.1 / 3.1.2 节
网络要求 默认 TTS 为 edgetts(需要访问微软 Edge 在线语音接口);默认 LLM 为 dashscope(对话模式需要 DASHSCOPE_API_KEY);echo 复读模式不调用 LLM config.py 默认值 + .env.example + 官方文档 3.5 节

06.4 最详细部署步骤(WSL2 Ubuntu 24.04 / Windows 双视角)

视角 A:WSL2 内 Ubuntu 24.04(与官方测试环境 Ubuntu 22.04 同系,源码部署主路径)。视角 B:Windows 10/11 原生,优先使用官方整合包;源码级调试建议回到 WSL2。

06.4.1 安装基础依赖

视角 A:WSL2 Ubuntu 24.04(官方 README 命令)

# 0. 确认已安装 NVIDIA 驱动(Windows 侧)并在 WSL2 中可看到显卡
nvidia-smi

# 1. 安装 miniconda 后创建官方指定环境(README 原文命令)
conda create -n livetalking python=3.12
conda activate livetalking

# 2. 安装 PyTorch:README 测试组合 CUDA 12.8
#    若 nvidia-smi 显示的 CUDA 版本不同,请按 https://pytorch.org/get-started/previous-versions 选择对应 cu 版本
pip install torch==2.9.1 torchvision==0.24.1 torchaudio==2.9.1 --index-url https://download.pytorch.org/whl/cu128

# 3. 拉取源码(国内可改用 Gitee / GitCode 镜像,见 06.4.2"国内加速方案")
git clone https://github.com/lipku/LiveTalking.git
cd LiveTalking

# 4. 安装 Python 依赖(README 原文命令)
pip install -r requirements.txt

# 5. ffmpeg(FAQ 官方方式:conda 安装;需保证编译选项含 libx264)
conda install -c conda-forge ffmpeg
ffmpeg -version    # 输出信息中应能看到 --enable-libx264 相关支持

视角 B:Windows 10/11 原生

  • 官方 README 2.5 节提供 Windows 整合包:https://pan.quark.cn/s/a040bf5cb065(curl 200 核验,2026-10-25),按包内说明启动即可,无需手动装 PyTorch。
  • 官方 README 2.3 节另提供 Windows 桌面客户端:https://pan.quark.cn/s/d7192d8ac19b(curl 200 核验)。
  • README 未提供 Windows 原生逐条源码安装命令;若需源码部署,在 WSL2 Ubuntu 中执行视角 A 的步骤。

06.4.2 下载模型 / 权重

wav2lip 后端(README 2.1 节 + 官方文档 3.1.1 节,两个官方网盘二选一)

网盘 官方地址 核验状态
夸克云盘 https://pan.quark.cn/s/83a750323ef0 curl 200(2026-10-25)
Google Drive https://drive.google.com/drive/folders/1FOC_MD6wdogyyX_7V1d4NDIO7P9NlSAJ?usp=sharing 沙箱网络直连超时(000);链接来自官方 README 2.1 节,境外网络可访问性待用户所在环境核验

下载后按官方文档 3.1.1 节放置文件:

官方要求的目标路径 文件
wav2lip/face_detection/detection/sfd/s3fd.pth s3fd.pth(官方文档 3.1.1 节)
models/wav2lip.pth wav2lip256.pth 拷贝到 models/ 目录后重命名为 wav2lip.pth(README 2.1 节 + 文档 3.1.1 节;app.py 中 load_model("./models/wav2lip.pth") 与之一致)
data/avatars/wav2lip256_avatar1/ 解压 wav2lip256_avatar1.tar.gz,整个文件夹拷贝到 data/avatars/ 目录下(README 2.1 节)

musetalk 后端(官方文档 3.1.2 节)

  • 官方迅雷网盘地址:https://pan.xunlei.com/s/VOW3nYho64jeCxT2sxrjcE7fA1?pwd=evnw(curl 200,2026-10-25 核验;提取码 evnw 来自链接本身)
  • 将压缩包内 models/ 下文件拷贝到项目 models/ 目录;解压 musetalk_avatar1.tar.gz 后将整个文件夹拷贝到 data/avatars/ 目录下。
  • 官方文档 3.1.2 节注明:以下库只在生成 avatar 时需要,推理不需要:
conda install ffmpeg
sudo apt install build-essential cmake
pip install "setuptools<81"
pip install face_recognition

国内加速方案(README 原文给出)

06.4.3 关键配置(命令行参数,来源:官方 config.py 源码 parse_args())

参数 默认值 说明
--model wav2lip avatar 模型:musetalk / wav2lip / ultralight(app.py 注册项;README Features 另列 ernerf,独立分支)
--avatar_id wav2lip256_avatar1 data/avatars 目录下的数字人形象 ID
--transport webrtc 输出方式:rtcpush / webrtc / rtmp / virtualcam
--batch_size 16 推理 batch 大小;官方文档 3.1.1 节说明"可以设置 --batch_size 提高显卡利用率"
--tts edgetts TTS 插件:edgetts / gpt-sovits / cosyvoice / fishtts / tencent / doubao / indextts2 / azuretts / qwentts(config.py help 文本)
--REF_FILE zh-CN-YunxiaNeural 参考文件名或语音模型 ID(音色)
--REF_TEXT None 参考文本(gpt-sovits 等声音克隆场景使用)
--TTS_SERVER http://127.0.0.1:9880 第三方 TTS 服务地址
--llm_provider dashscope LLM 提供方:dashscope / orcarouter
--llm_model 空 覆盖默认 LLM 模型;空 = 提供方默认模型
--push_url http://localhost:1985/rtc/v1/whip/?app=live&stream=livestream rtcpush 模式推流地址
--max_session 5 最大并发会话数;官方文档 3.6 节示例 --max_session 3
--listenport 8010 Web 服务监听端口(app.py 中 TCPSite(runner, '0.0.0.0', opt.listenport))
--stun stun:stun.freeswitch.org:3478 WebRTC STUN 服务器地址
--fps 25 视频帧率,help 文本注明 must be 25
--customvideo_config 空 自定义动作编排 JSON 配置路径
--audio_output_device None 音频输出设备索引,仅 --transport=virtualcam 生效;用 python list_audio_devices.py 查看设备
--config / -c config.yaml YAML 配置文件路径;优先级:CLI 参数 > YAML > 默认值

环境变量(来源:官方 .env.example):.env.example 提供 TENCENT_APPID / TENCENT_SECRET_KEY / TENCENT_SECRET_ID / DASHSCOPE_API_KEY / DOUBAO_API_KEY / AZURE_SPEECH_KEY / AZURE_TTS_ENDPOINT,按所选 TTS / LLM 服务填写;不使用对应服务可留空。

06.4.4 启动服务(官方 README 2.2 节命令)

conda activate livetalking
cd LiveTalking

# wav2lip 后端(默认)
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1

# musetalk 后端示例(需先按 06.4.2 下载对应模型与 avatar)
python app.py --transport webrtc --model musetalk --avatar_id musetalk_avatar1

README 原文注意事项:服务端需开放端口 TCP:8010,UDP:1-65536(WebRTC 媒体通道)。本机 http://127.0.0.1:8010 无需额外放行;云服务器部署需在安全组放行。

06.5 使用方法

06.5.1 启动方式与入口页面(README 2.3 / 2.4 节 + docs/api.md)

接入方式 说明 地址 / 入口
浏览器 WebUI 打开 http://<serverip>:8010/index.html,点击"开始连接"播放数字人视频,在文本框输入文字提交即可(README 2.3 节) /index.html(首页:WebRTC 连接 + 文本/音频驱动 + 录制控制)
Avatar 生成页 上传视频自动生成数字人形象(README 2.4 节) /avatar.html
管理后台 实时监控会话状态与全局配置(README 2.4 节) /admin.html
命令行 / HTTP API 参考 docs/api.md 通过 HTTP 接口驱动(README 2.3 节) 基础路径 http://<host>:<listenport>
桌面客户端 官方下载:https://pan.quark.cn/s/d7192d8ac19b(README 2.3 节) Windows 客户端

06.5.2 WebUI 操作流程(README 2.3 节 + 官方文档 3.1 节)

  1. 启动服务后浏览器访问 http://127.0.0.1:8010/index.html。
  2. 点击"开始连接"建立 WebRTC 通道,页面出现数字人待机画面。
  3. 在文本框输入要播报的文字,提交后由默认 TTS(edgetts)合成语音并驱动口型;切换到对话模式会先经 LLM 生成回复再播报。
  4. 需要自定义形象时进入 /avatar.html 上传闭嘴不说话的视频生成 avatar(官方文档 3.1.1 / 3.1.2 节给出的命令行等价方式见 06.5.4)。
  5. 录制:首页提供录制控制按钮;对应后端 API 为 /record 与 /record/{sessionid}。

06.5.3 HTTP API 参数说明(来源:官方 docs/api.md,web_fetch 全文核验)

接口 方法 关键参数 说明
/offer POST(JSON) sdp(必填)、type(必填,offer)、avatar、refaudio、reftext、custom_config 交换 SDP 建立 WebRTC 连接;响应含 sessionid
/whep POST(application/sdp) Query:avatar、refaudio、reftext、tts、tts_server、tts_speed、custom_config WHEP 协议接入;响应头 X-Session-ID 返回会话 ID
/human POST(JSON) sessionid(必填)、text(必填)、type(必填:echo 直接复读 / chat 触发 LLM 回答)、interrupt(可选,bool,是否打断当前播报)、tts(可选,透传 TTS 配置) 文本驱动数字人说话
/humanaudio POST(multipart/form-data) sessionid(必填)、file(必填,音频文件) 上传音频文件直接驱动数字人
/interrupt_talk POST sessionid(必填) 立即清空当前会话音频队列,打断播报
/is_speaking POST sessionid(必填) 查询是否正在说话,返回 data: true/false
/record POST sessionid(必填)、type(必填:start_record / end_record) 服务端渲染录制控制
/record/{sessionid} GET 路径参数 sessionid 下载录制完成的 MP4;不存在返回 404
/set_audiotype POST sessionid(必填)、audiotype(必填,int) 设置动作编排(静音视频 / 自定义状态)
/sse?sessionid=<sessionid> GET(SSE) Query sessionid(必填) 服务器→客户端异步状态推送,事件格式 data: {"status": "start"}

06.5.4 常用命令行补充(官方文档 3.1 节)

# wav2lip 后端:用自己的视频生成 avatar(输入视频需闭嘴不说话;img_size 固定 256)
python -m avatars.wav2lip.genavatar --video_path xxx.mp4 --img_size 256 --avatar_id wav2lip256_avatar1
# 若一直卡住不动,可将 --face_det_batch_size 改小(文档 3.1.1 节备注)

# musetalk 后端:用视频或图片生成 avatar
python -m avatars.musetalk.genavatar --avatar_id musetalk_avatar1 --file ~/sun.mp4

# 多并发会话(文档 3.6 节)
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1 --max_session 3

# 虚拟摄像头输出(文档 3.8 节:先安装 pyvirtualcam 驱动与 Python 包、pyaudio)
pip install pyvirtualcam
pip install pyaudio
python app.py --transport virtualcam --model wav2lip --avatar_id wav2lip256_avatar1
# 浏览器另开 http://<serverip>:8010/virtualcam.html;OBS 等直播软件选择虚拟摄像头即可

06.5.5 端到端示例(输入 → 命令 → 输出)

场景:本机 WSL2 内用默认 wav2lip 数字人播报一句开场词,并录制为 MP4。

  1. 输入素材:无需额外图片/视频素材,使用官方示例 avatar wav2lip256_avatar1;播报文本:大家好,欢迎来到我的频道。
  2. 启动服务:
conda activate livetalking
cd LiveTalking
python app.py --transport webrtc --model wav2lip --avatar_id wav2lip256_avatar1
  1. 浏览器打开 http://127.0.0.1:8010/index.html → 点击"开始连接";在文本框输入 大家好,欢迎来到我的频道。 提交(type=echo 复读模式,不依赖 LLM Key)。
  2. 录制(docs/api.md):先 POST /record,body {"sessionid": "<连接后获得的 sessionid>", "type": "start_record"};播报结束后 type 改为 end_record;最后 GET http://127.0.0.1:8010/record/<sessionid>.mp4 下载成片。
  3. 输出:浏览器端实时看到口型同步的数字人画面;服务端 data/record/<sessionid>.mp4 为录制视频。
  4. 实时性自检(README"6. 性能指标"):后端日志 inferfps = GPU 推理帧率,finalfps = 最终推流帧率,两者均需 ≥25 才算实时。

06.6 常见坑(现象 + 原因 + 解决,均来自官方 README / FAQ / 文档)

# 现象 原因 官方解决方式
1 启动后报找不到 wav2lip.pth 或模型加载失败 模型文件未按 README 2.1 节放置,或 wav2lip256.pth 未重命名为 wav2lip.pth;s3fd.pth 未放入 wav2lip/face_detection/detection/sfd/ 按 06.4.2 表格核对三个目标路径;app.py 固定读取 ./models/wav2lip.pth
2 画面卡顿、finalfps 低于 25,不说话不卡、一说话就掉帧 同时说话并发受 GPU 限制;--batch_size 过大;显卡性能不匹配所选后端的推荐型号 参考 README 性能表:wav2lip256 需 RTX 3060+,musetalk 需 RTX 3080Ti+;适当调低 --batch_size;后端日志查看 inferfps / finalfps 是否 ≥25
3 RTMP 推流失败 / 推流后无画面 ffmpeg 编译选项不含 libx264(FAQ 第 6 条,"网上版友反馈需要 4.2.2 版本",作者注明不确定具体哪些版本不行) FAQ:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 后 conda install ffmpeg;ffmpeg -version 输出中需能看到 libx264
4 浏览器无法采集麦克风 / 语音输入被拦截 http://<非 localhost IP>:8010 属于非安全来源,浏览器禁止音频采集(官方文档 3.7 节) 浏览器地址栏打开 edge://flags/#unsafely-treat-insecure-origin-as-secure,将服务端网址(如 http://192.168.3.5:8010)填入并重启浏览器
5 依赖版本报错:numpy.dtype size changed, may indicate binary incompatibility numpy 版本与编译好的二进制包不兼容 FAQ 第 9 条:pip install --upgrade "numpy==1.26.4"
6 依赖版本报错:cannot import name 'Dinov2WithRegistersConfig' from 'transformers',或提示需升级 torch 到 v2.6 transformers 版本不匹配 FAQ:pip install transformers==4.50.0(两条 FAQ 记录均指向该版本)
7 musetalk 预处理数字人报错 'MMCV==2.2.0 is used but incompatible' pip 版本过高导致 MMCV 安装不匹配 FAQ 第 8 条:python -m pip install pip==24.0,再 mim install "mmdet>=3.1.0"、mim install "mmpose>=1.1.0";若报 'Adafactor is already registered in optimizer at torch.optim',执行 mim install mmengine==0.10.7
8 对话模式报错 / 回复为空 未配置 LLM 服务密钥;默认 llm_provider=dashscope 需要 DASHSCOPE_API_KEY 在 .env 中配置 DASHSCOPE_API_KEY,或改用 --llm_provider orcarouter 并配置对应网关密钥;仅复读用 echo 模式,不需要 LLM Key(文档 3.5 节 + .env.example)
9 端口 8010 被占用 本机其他进程占用默认监听端口 用 --listenport 指定其他端口(config.py 参数);云服务器确认 TCP:8010 与 UDP:1-65536 已放行
10 setuptools 相关报错(face_recognition 安装阶段) setuptools 版本过高 FAQ 第 12 条:pip install "setuptools<81"

06.7 本节来源清单

# URL 用途 验证方式(2026-10-25)
1 https://github.com/lipku/LiveTalking 官方仓库主页 curl HEAD 200
2 https://raw.githubusercontent.com/lipku/LiveTalking/main/README.md README 全文(定位、Features、安装、模型下载、端口、性能表、页面、API 入口) web_fetch 完整读取(2261 字符,全文)
3 https://raw.githubusercontent.com/lipku/LiveTalking/main/LICENSE Apache-2.0 许可证核验 web_fetch 完整读取(Apache 2.0 原文)
4 https://raw.githubusercontent.com/lipku/LiveTalking/main/config.py CLI 参数、默认端口、默认模型/TTS/LLM 取值 web_fetch 完整读取(1404 字符)
5 https://raw.githubusercontent.com/lipku/LiveTalking/main/app.py 模型插件注册、默认加载路径、监听端口实现 web_fetch 完整读取(2125 字符)
6 https://raw.githubusercontent.com/lipku/LiveTalking/main/requirements.txt Python 依赖清单与版本钉版 web_fetch 完整读取(全文 181 字符)
7 https://raw.githubusercontent.com/lipku/LiveTalking/main/.env.example TTS/LLM 环境变量名清单(7 个变量) web_fetch 完整读取(全文 46 字符)
8 https://raw.githubusercontent.com/lipku/LiveTalking/main/docs/api.md HTTP API 接口与参数表 web_fetch 完整读取(1265 字符)
9 https://doc.livetalking.ai 官方文档站首页 curl HEAD 200
10 https://doc.livetalking.ai/docs/usage 官方使用说明(四种模型、传输模式、TTS、动作编排、LLM、多并发、语音输入、虚拟摄像头) web_fetch 完整读取(3818 字符)
11 https://doc.livetalking.ai/docs/faq/ 官方 FAQ(模型、ffmpeg、numpy/transformers/MMCV/setuptools 等排错) web_fetch 完整读取(634 字符)
12 https://doc.livetalking.ai/docs/service 开源版 / 商用版说明入口 curl HEAD 200
13 https://github.com/lipku/LiveTalking/releases Release 列表(v2.0.4 徽章对应页面) README 徽章跳转目标;GitHub HTML 页 robots 限制自动抓取,版本号取自 #14 徽章
14 https://img.shields.io/github/v/release/lipku/LiveTalking 最新 release 标签 v2.0.4 curl 读取 SVG,aria-label="release: v2.0.4"
15 https://gitee.com/lipku/LiveTalking README 给出的国内 Gitee 镜像 curl HEAD 200
16 https://gitcode.com/lipku/LiveTalking README 给出的国内 GitCode 镜像 curl HEAD 200
17 https://pan.quark.cn/s/83a750323ef0 wav2lip 模型官方夸克网盘(README 2.1 + 文档 3.1.1) curl HEAD 200
18 https://drive.google.com/drive/folders/1FOC_MD6wdogyyX_7V1d4NDIO7P9NlSAJ?usp=sharing wav2lip 模型官方 Google Drive 备选 沙箱网络直连 000(受限网络);URL 来自 README 原文,境外环境待用户核验
19 https://pan.xunlei.com/s/VOW3nYho64jeCxT2sxrjcE7fA1?pwd=evnw musetalk 后端模型官方迅雷网盘(文档 3.1.2) curl HEAD 200
20 https://pan.quark.cn/s/a040bf5cb065 README 2.5 节 Windows 整合包 curl HEAD 200
21 https://pan.quark.cn/s/d7192d8ac19b README 2.3 节 Windows 桌面客户端 curl HEAD 200
22 https://www.livetalking.top README 2.5 节商用版体验地址 curl HEAD 200
23 https://raw.githubusercontent.com/lipku/LiveTalking/main/assets/LiveTalking-logo.png 图 06-1 官方 logo 原图 curl 下载 + file 校验 PNG 800×281,182,644 字节
24 https://raw.githubusercontent.com/lipku/LiveTalking/main/assets/index.jpg 图 06-2 官方 Web 首页截图原图 curl 下载 + file 校验 JPEG 2642×1356,279,848 字节
25 https://raw.githubusercontent.com/lipku/LiveTalking/main/assets/dataflow.png 备用官方数据流图(已下载备查) curl 下载 + file 校验 PNG 2476×262,84,053 字节
26 https://github.com/lipku/livestream README 使用场景中"虚拟主播/直播带货"关联项目 curl HEAD 200
27 https://github.com/letmaik/pyvirtualcam 文档 3.8 节虚拟摄像头驱动 curl HEAD 200
28 https://github.com/lipku/python_rtmpstream 文档 3.2.3 节 RTMP 推流依赖库 curl HEAD 200
29 https://github.com/anliyuan/Ultralight-Digital-Human 文档 3.1.4 节 ultralight 后端训练参考项目 curl HEAD 200
30 https://pytorch.org/get-started/previous-versions README 指定的 PyTorch 历史版本选择页(README 原文引用) 官方站点,README 引用;未单独抓取页面内容
31 https://download.pytorch.org/whl/cu128 README 安装命令中 torch 2.9.1 cu128 wheel 索引 curl HEAD 200
32 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge FAQ 第 6 条 ffmpeg 安装所用 conda-forge 镜像 curl HEAD 200
33 https://github.com/lipku/LiveTalking/blob/main/README.md README 源码页面(06.1 许可证徽章指向) curl HEAD 200

07. MuseTalk —— 腾讯音乐 Lyra Lab 出品的实时高保真音频驱动视频口型同步模型

适用场景:给已有视频/照片中的人物换配音口型、配合 MuseV 生成的虚拟人视频完成口型对齐、离线批量配音成片;仓库同时提供普通推理、实时推理与 Gradio 网页 Demo 三套入口。本节命令与参数均以官方 README、官方仓库脚本(scripts/inference.py、scripts/realtime_inference.py、app.py、inference.sh、download_weights.sh、download_weights.bat、requirements.txt、configs/inference/*.yaml)为准。

07.1 项目定位与基本信息

项目 内容
一句话定位 实时高质量音频驱动口型同步模型(MuseTalk: Real-Time High-Fidelity Video Dubbing via Spatio-Temporal Sampling),在 ft-mse-vae 潜空间中按输入音频修改人脸区域(256×256),支持中/英/日等多语言音频,NVIDIA Tesla V100 上 30fps+(来源:官方 README Overview 与开头摘要)
开源许可 代码:MIT License(Copyright © 2024 Tencent Music Entertainment Group),学术与商业使用均无限制;训练好的模型权重:README 声明可用于任何用途,包括商业用途;whisper、ft-mse-vae、dwpose、S3FD 等第三方开源组件须遵守各自许可证;测试数据集仅可用于非商业研究目的(来源:官方仓库 LICENSE 文件 + README "Disclaimer/License" 章节,web_fetch 核验)
官方 GitHub 仓库 https://github.com/TMElyralab/MuseTalk(curl HEAD 200,2026-10-25 核验)
官方 HuggingFace 权重仓库 https://huggingface.co/TMElyralab/MuseTalk(curl HEAD 200);官方在线 Gradio Demo:https://huggingface.co/spaces/TMElyralab/MuseTalk(curl HEAD 200)
官方文档/官网 本项目没有独立官方文档站点;使用说明全部位于 GitHub README;技术报告:https://arxiv.org/abs/2410.10122(curl 200),v2 版本 https://arxiv.org/abs/2410.10122v2(curl 200)。README 称"对新用户提供了详细安装与使用教程",即仓库 README 本身
版本信息 官方未在 GitHub Releases 发布版本包(release 徽章显示 "no releases or repo not found",2026-10-25 curl 核验);模型版本以 README News 为准:MuseTalk 1.5 于 2025-03-28 发布(清晰度、身份一致性、唇音同步均优于 1.0);训练代码于 2025-04-05 开源;1.0 版本于 2024-04-02 发布。当前 main 分支推理命令同时支持 v1(1.0)与 v15(1.5)
作者 / 机构 Yue Zhang、Zhizhou Zhong、Minhao Liu、Zhaokang Chen、Bin Wu†、Yubin Zeng、Chao Zhan、Junxin Huang、Yingjie He、Wenjiang Zhou;同等贡献,†通讯作者 benbinwu@tencent.com;腾讯音乐娱乐 Lyra Lab(README 首页署名)
技术要点 非扩散模型:单次前向在潜空间完成 inpainting;音频由冻结的 whisper-tiny 编码;生成网络借用 Stable Diffusion UNet 结构,音频 embedding 经交叉注意力融合到图像 embedding(README "Model" 章节)
已知局限(README "Limitations") 人脸区域 256×256,分辨率未达理论上限,可结合 GFPGAN 等超分模型提升;胡须、唇形唇色等面部细节保留不充分;当前流水线逐帧生成,存在抖动

07.2 官方图片

图 07-1 MuseTalk 模型结构(README "Model" 章节原图)

MuseTalk 模型结构示意图

图 07-2 Gradio Demo 参数面板(README "Gradio Demo" 章节引用图 assets/figs/gradio_2.png)

MuseTalk Gradio 参数面板

说明:仓库另一张 assets/figs/gradio.png(硬件耗时对比图)下载后仅 13,911 字节,未达到本节 ">20KB" 的交付要求,故未引用;本地亦未保留。

07.3 环境要求

维度 要求 / 说明 官方依据
操作系统 README 同时提供 Linux 与 Windows 的安装、普通推理、实时推理命令;Gradio Demo 官方实测环境为 Windows + NVIDIA RTX 3050 Ti Laptop GPU(README "Gradio Demo" 章节)。本机 WSL2 Ubuntu 24.04 与 Windows 10/11 原生均可执行 README 命令 README Installation / Quickstart / Gradio Demo
Python 官方推荐 Python 3.10(conda create -n MuseTalk python==3.10) README "Build environment"
CUDA / PyTorch 官方推荐 CUDA 11.7;安装 PyTorch 2.0.1、torchvision 0.15.2、torchaudio 2.0.2,提供 pip(cu118 wheel)与 conda 两种方式 README "Install PyTorch 2.0.1"
GPU 与显存 实时推理基准:NVIDIA Tesla V100 上 30fps+(README Overview)。官方最低实测:Windows + RTX 3050 Ti Laptop 4GB 显存,fp16 模式生成 8 秒视频约 5 分钟(README Gradio 章节)。官方未列出其他消费级显卡的显存占用 GB 数值(待实测) README Overview / Gradio Demo
本机显卡适配说明 RTX 3070 8GB:高于官方最低实测的 4GB 机型,离线普通推理在 fp16 下可运行;官方未承诺 3070 达到实时帧率,实时推理速度以本机实测为准。RTX 4090 24GB:显存余量充足,可关闭 fp16 换取更好画质。以上为对照官方最低配置的说明,非官方实测结论 README Gradio 章节(对照得出,已注明)
内存 官方 README / 脚本未列明内存容量要求(待验证) —
Python 依赖(requirements.txt 钉版,web_fetch 核验原文) diffusers==0.30.2、accelerate==0.28.0、numpy==1.23.5、tensorflow==2.12.0、tensorboard==2.12.0、opencv-python==4.9.0.80、soundfile==0.12.1、transformers==4.39.2、huggingface_hub==0.30.2、librosa==0.11.0、einops==0.8.1、gradio==5.24.0、gdown、requests、imageio[ffmpeg]、omegaconf、ffmpeg-python、moviepy https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/requirements.txt
MMLab 生态依赖 openmim → mmengine → mmcv==2.0.1 → mmdet==3.1.0 → mmpose==1.1.0(README "Install MMLab Packages" 原文版本号) README Installation
ffmpeg 普通推理与视频合成依赖 ffmpeg;README 要求先 ffmpeg -version 确认可用;Linux sudo apt-get install ffmpeg;Windows 从 FFmpeg static 构建下载并加入 PATH,或通过 --ffmpeg_path 参数指定 README "Setup FFmpeg" + Quickstart "Prerequisites" + scripts/inference.py
磁盘空间 / 模型权重体积 下列体积为 2026-10-25 对各 HF / 官方 URL 执行 HTTP HEAD(Content-Length)实测;官方 README 未给出官方体积说明。7 个已测文件合计约 8.59 GiB;人脸解析 79999_iter.pth 托管于 Google Drive,本次未取得体积(待验证);另需为输出帧图片与成片预留磁盘 07.4.3 权重清单表(实测值 + 出处 URL)

07.4 最详细部署步骤(WSL2 Ubuntu 24.04 / Windows 10-11 双视角)

07.4.1 环境搭建(README Installation 原文命令)

视角 A:WSL2 Ubuntu 24.04 / Linux

# 1. 创建官方推荐环境
conda create -n MuseTalk python==3.10
conda activate MuseTalk

# 2. 安装 PyTorch 2.0.1(README Option 1:pip cu118 wheel)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
# README Option 2(conda 方式,二选一即可):
# conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia

# 3. 拉取源码
git clone https://github.com/TMElyralab/MuseTalk.git
cd MuseTalk

# 4. 安装其余 Python 依赖(README 原文命令)
pip install -r requirements.txt

# 5. 安装 MMLab 生态(README 原文命令)
pip install --no-cache-dir -U openmim
mim install mmengine
mim install "mmcv==2.0.1"
mim install "mmdet==3.1.0"
mim install "mmpose==1.1.0"

# 6. 安装 ffmpeg(README Quickstart Prerequisites:Linux 用系统包管理器)
sudo apt-get update && sudo apt-get install -y ffmpeg
ffmpeg -version    # 确认命令在 PATH 中

视角 B:Windows 10/11 原生

# 1. conda 环境(与 Linux 一致)
conda create -n MuseTalk python==3.10
conda activate MuseTalk

# 2. PyTorch(README 同一组 pip 命令,Windows 下直接可用)
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

# 3. 源码与依赖
git clone https://github.com/TMElyralab/MuseTalk.git
cd MuseTalk
pip install -r requirements.txt
pip install --no-cache-dir -U openmim
mim install mmengine
mim install "mmcv==2.0.1"
mim install "mmdet==3.1.0"
mim install "mmpose==1.1.0"

ffmpeg 安装(README "Setup FFmpeg" 原文):

  1. 下载 ffmpeg-static 构建包:https://github.com/BtbN/FFmpeg-Builds/releases(curl 200 核验)。
  2. Linux:解压后设置环境变量 export FFMPEG_PATH=/path/to/ffmpeg,README 示例 export FFMPEG_PATH=/musetalk/ffmpeg-4.4-amd64-static。
  3. Windows:将 ffmpeg-xxx\bin 目录加入系统 PATH;命令行运行 ffmpeg -version 能输出版本信息即配置成功;也可以在推理命令中用 --ffmpeg_path 参数指定实际 bin 目录(README Windows 推理命令即采用该方式)。

07.4.2 下载权重(两种官方方式)

方式一:官方下载脚本(推荐,脚本内置国内 HF 镜像)

系统 命令 脚本事实(web_fetch 核验源码)
Linux sh ./download_weights.sh 脚本内 export HF_ENDPOINT=https://hf-mirror.com;依次下载 v1.0、v1.5、sd-vae、whisper、dwpose、syncnet;gdown 下载人脸解析权重;curl 下载 resnet18
Windows download_weights.bat 脚本内 set HF_ENDPOINT=https://hf-mirror.com;使用 hf download 命令拉取 TMElyralab/MuseTalk 整仓及上述子模型;人脸解析从 HF ManyOtherFunctions/face-parse-bisent 下载两个文件

方式二:手动下载(README "Option 2: Manual Download" 原文清单)

  1. MuseTalk 训练权重:https://huggingface.co/TMElyralab/MuseTalk/tree/main
  2. 其他组件权重: - sd-vae-ft-mse:https://huggingface.co/stabilityai/sd-vae-ft-mse/tree/main(curl 200) - whisper-tiny:https://huggingface.co/openai/whisper-tiny/tree/main(curl 200) - dwpose:https://huggingface.co/yzd-v/DWPose/tree/main(curl 200) - syncnet:https://huggingface.co/ByteDance/LatentSync/tree/main(curl 200) - face-parse-bisent 79999_iter.pth:https://drive.google.com/file/d/154JgKpzCPW82qINcVieuPH3fZ2e0P812/view?pli=1 - resnet18:https://download.pytorch.org/models/resnet18-5c106cde.pth(curl 实测 46,827,520 字节)

权重目录结构(README 原文树形清单,必须按此组织到 models/ 下):

./models/
├── musetalk
│   ├── musetalk.json
│   └── pytorch_model.bin
├── musetalkV15
│   ├── musetalk.json
│   └── unet.pth
├── syncnet
│   └── latentsync_syncnet.pt
├── dwpose
│   └── dw-ll_ucoco_384.pth
├── face-parse-bisent
│   ├── 79999_iter.pth
│   └── resnet18-5c106cde.pth
├── sd-vae
│   ├── config.json
│   └── diffusion_pytorch_model.bin
└── whisper
    ├── config.json
    ├── pytorch_model.bin
    └── preprocessor_config.json

07.4.3 权重文件清单与实测体积(2026-10-25 HTTP HEAD Content-Length 实测)

目录 / 文件 来源仓库 实测体积 备注
models/musetalk/pytorch_model.bin https://huggingface.co/TMElyralab/MuseTalk 3,400,076,549 B ≈ 3.17 GiB MuseTalk 1.0 权重;只用 1.5 时可不下载
models/musetalkV15/unet.pth https://huggingface.co/TMElyralab/MuseTalk 3,400,074,924 B ≈ 3.17 GiB MuseTalk 1.5 权重(README 推荐版本)
models/sd-vae/diffusion_pytorch_model.bin https://huggingface.co/stabilityai/sd-vae-ft-mse 334,707,217 B ≈ 319.2 MiB 冻结 VAE
models/whisper/pytorch_model.bin https://huggingface.co/openai/whisper-tiny 151,095,027 B ≈ 144.1 MiB 冻结音频编码器
models/dwpose/dw-ll_ucoco_384.pth https://huggingface.co/yzd-v/DWPose 406,878,486 B ≈ 388.0 MiB 人脸关键点检测
models/syncnet/latentsync_syncnet.pt https://huggingface.co/ByteDance/LatentSync 1,488,019,828 B ≈ 1.39 GiB 唇音同步判别网络
models/face-parse-bisent/resnet18-5c106cde.pth https://download.pytorch.org/models/resnet18-5c106cde.pth 46,827,520 B ≈ 44.7 MiB 人脸解析 backbone
models/face-parse-bisent/79999_iter.pth Google Drive(README 手动清单) 待验证(本次未能取得 Content-Length) 人脸解析权重
合计(不含 79999_iter.pth) — 约 8.59 GiB 另需预留输出帧与成片空间

国内加速:download_weights.sh / download_weights.bat 已把 HF_ENDPOINT 指向 https://hf-mirror.com(curl 200 核验);手动下载时也可在各 HF URL 前替换域名 huggingface.co → hf-mirror.com。

07.4.4 关键配置文件修改(以官方 YAML 原文为准,web_fetch 核验)

普通推理配置 configs/inference/test.yaml(当前 main 分支原文):

task_0:
 video_path: "data/video/yongen.mp4"
 audio_path: "data/audio/yongen.wav"

task_1:
 video_path: "data/video/yongen.mp4"
 audio_path: "data/audio/eng.wav"
 bbox_shift: -7
字段 含义 官方说明
video_path 输入视频、图片文件或图片目录(scripts/inference.py 支持三种类型) README:video_path 为输入视频/图片/图片目录路径
audio_path 输入音频文件路径 README:audio_path 为输入音频文件路径
bbox_shift 人脸掩码上边界偏移量,仅 v1.0 生效;正值(向下)增大张嘴幅度,负值(向上)减小张嘴幅度 README "Use of bbox_shift to have adjustable results (For 1.0)";scripts/inference.py 中 v15 分支强制 bbox_shift = 0
result_name 可选,自定义输出视频文件名(scripts/inference.py 读取该字段;YAML 默认配置未使用) 源码字段

实时推理配置 configs/inference/realtime.yaml(当前 main 分支原文):

avator_1:
 preparation: True # your can set it to False if you want to use the existing avator, it will save time
 bbox_shift: 5
 video_path: "data/video/yongen.mp4"
 audio_clips:
     audio_0: "data/audio/yongen.wav"
     audio_1: "data/audio/eng.wav"
字段 含义 官方说明(README "Important notes for real-time inference")
preparation 处理新数字人时设为 True;复用已准备好的形象设为 False 以节省时间 README 实时推理注意事项第 1、4 条
bbox_shift 人脸偏移量(仅 v1.0 生效;scripts/realtime_inference.py 中 v15 分支同样固定为 0) 源码 + README
video_path 数字人参考视频路径 README 配置说明
audio_clips 实时模式下逐段生成所用的音频片段字典 README 注意事项第 2 条:准备完成后,形象将用 audio_clips 中的音频片段生成视频

README 补充:为获得最佳效果,输入视频建议 25fps(与训练时一致);帧率偏低的视频可先插帧,或用 ffmpeg 转成 25fps。

07.4.5 启动与推理命令

普通推理(Normal Inference,README Quickstart 原文)

Linux:

# MuseTalk 1.5(README 推荐)
sh inference.sh v1.5 normal
# MuseTalk 1.0
sh inference.sh v1.0 normal

Windows(README 原文命令,路径分隔符为反斜杠;--ffmpeg_path 指向实际 ffmpeg bin 目录):

REM MuseTalk 1.5(推荐)
python -m scripts.inference --inference_config configs\inference\test.yaml --result_dir results\test --unet_model_path models\musetalkV15\unet.pth --unet_config models\musetalkV15\musetalk.json --version v15 --ffmpeg_path ffmpeg-master-latest-win64-gpl-shared\bin

REM MuseTalk 1.0:相应改为 models\musetalk、pytorch_model.bin、--version v1

实时推理(Real-time Inference,README Quickstart 原文)

Linux:

# MuseTalk 1.5(推荐)
sh inference.sh v1.5 realtime
# MuseTalk 1.0
sh inference.sh v1.0 realtime

Windows(README 原文命令):

REM MuseTalk 1.5(推荐)
python -m scripts.realtime_inference --inference_config configs\inference\realtime.yaml --result_dir results\realtime --unet_model_path models\musetalkV15\unet.pth --unet_config models\musetalkV15\musetalk.json --version v15 --fps 25 --ffmpeg_path ffmpeg-master-latest-win64-gpl-shared\bin

REM MuseTalk 1.0:相应改为 models\musetalk、pytorch_model.bin、--version v1

inference.sh 脚本事实(web_fetch 核验):normal → scripts.inference + configs/inference/test.yaml + results/test;realtime → scripts.realtime_inference + configs/inference/realtime.yaml + results/realtime,并附加 --fps 25;v1.0 对应 --version v1 与 models/musetalk/pytorch_model.bin,v1.5 对应 --version v15 与 models/musetalkV15/unet.pth。

Gradio 网页 Demo(README "Gradio Demo" 原文命令;Windows / Linux 通用):

# 可去掉 --use_float16 换取更好画质,但会增加显存占用与推理时间(README 原文说明)
python app.py --use_float16 --ffmpeg_path ffmpeg-master-latest-win64-gpl-shared\bin

app.py 参数(源码 argparse 核验):--ip 默认 127.0.0.1,--port 默认 7860,--share(创建公开链接),--use_float16,--ffmpeg_path 默认 Windows 路径 ffmpeg-master-latest-win64-gpl-shared\bin。启动后浏览器访问 http://127.0.0.1:7860。

07.5 使用方法

07.5.1 方式一:Gradio 网页 Demo(README "Gradio Demo" 章节 + app.py 界面定义)

  1. 启动 python app.py --use_float16 --ffmpeg_path <ffmpeg bin 目录>。
  2. 左侧面板:Drving Audio(app.py 源码原始标签,即 Driving Audio)上传驱动音频;Reference Video 上传参考视频(app.py 的 check_video 会自动把视频转成 25fps)。
  3. 参数区: - BBox_shift value, px(bbox_shift,默认 0,仅 v1.0 可调;Demo 固定使用 v15) - Extra Margin(滑块 0–40,默认 10,决定下颌区域可动范围) - Parsing Mode(jaw / raw,默认 jaw) - Left Cheek Width / Right Cheek Width(滑块 20–160,默认 90;jaw 模式下决定左右脸颊编辑范围)
  4. 先点 "1. Test Inpainting" 仅生成第一帧用于微调口型参数,减少成片面部瑕疵(README 建议:为节省推理时间,可先生成第一帧调试最佳参数)。
  5. 参数满意后点 "2. Generate",右侧输出口型同步视频。

07.5.2 方式二:命令行普通推理(离线批量配音)

  1. 编辑 configs/inference/test.yaml,把 video_path / audio_path 换成自己的素材;可写多个 task_* 任务。
  2. 执行 07.4.5 节普通推理命令。
  3. 输出目录:results/test/v15/<视频名>_<音频名>.mp4(scripts/inference.py 命名规则:output_basename = f"{input_basename}_{audio_basename}",先帧序列 + 临时视频,再用 ffmpeg 合并输入音频)。

07.5.3 方式三:命令行实时推理

  1. 首次为新数字人准备素材:configs/inference/realtime.yaml 中 preparation: True,填写 video_path 与 audio_clips。
  2. 执行 07.4.5 节实时推理命令;首次会做人脸检测、坐标提取、VAE latent 等准备工作并缓存:v15 为 results/v15/avatars/<avatar_id>/,v1 为 results/avatars/<avatar_id>/(scripts/realtime_inference.py 源码路径规则)。
  3. 后续复用同一形象:将 preparation 改为 False,跳过准备阶段。
  4. 可选跳过图片保存以测速:
python -m scripts.realtime_inference --inference_config configs/inference/realtime.yaml --skip_save_images

(README "For faster generation without saving images" 原文命令)

07.5.4 普通推理参数说明表(来源:scripts/inference.py 源码 argparse,逐项核验默认值)

参数 默认值 说明
--ffmpeg_path ./ffmpeg-4.4-amd64-static/ ffmpeg 可执行文件所在目录;找不到时脚本将其加入 PATH(Windows 分隔符 ;,其他系统 :)
--gpu_id 0 使用的 GPU 编号
--vae_type sd-vae VAE 类型
--unet_config ./models/musetalk/config.json(源码默认值) UNet 配置 JSON 路径;1.5 启动命令中传 models/musetalkV15/musetalk.json
--unet_model_path ./models/musetalkV15/unet.pth(源码默认值) UNet 权重路径;1.0 传 models/musetalk/pytorch_model.bin
--whisper_dir ./models/whisper Whisper 模型目录
--inference_config configs/inference/test_img.yaml(源码默认值) 推理 YAML 配置路径
--bbox_shift 0 人脸框偏移像素;仅 v1 生效,v15 固定为 0
--result_dir ./results 结果输出根目录
--extra_margin 10 人脸裁剪额外边距(v15 生效)
--fps 25 视频帧率(图片/图片目录输入时使用)
--audio_padding_length_left 2 音频左侧 padding 长度
--audio_padding_length_right 2 音频右侧 padding 长度
--batch_size 8 推理 batch 大小
--output_vid_name None 自定义输出视频文件名;YAML 中 result_name 会覆盖
--use_saved_coord 关 复用已保存的人脸坐标 .pkl 以节省时间
--saved_coord 关 保存坐标供后续复用;未开启则处理结束后删除坐标缓存
--use_float16 关 启用 fp16(pe / vae.vae / unet.model 转半精度),降低显存与耗时
--parsing_mode jaw 人脸融合解析模式(jaw / raw)
--left_cheek_width 90 左脸颊区域宽度(v15 解析参数)
--right_cheek_width 90 右脸颊区域宽度(v15 解析参数)
--version v15 模型版本,可选 v1 / v15

07.5.5 实时推理参数补充(来源:scripts/realtime_inference.py 源码 argparse)

参数 默认值 说明
--batch_size 20 实时推理 batch 大小(与普通推理的 8 不同)
--skip_save_images 关 跳过分帧图片保存,仅统计速度(README 07.5.3 命令)
--extra_margin 10 人脸裁剪额外边距
--parsing_mode jaw 融合解析模式
--left_cheek_width / --right_cheek_width 90 左右脸颊宽度
其他参数 同 07.5.4 实时脚本内模型固定转半精度(pe.half() 等),无 --use_float16 开关

07.5.6 端到端示例(输入 → 命令 → 输出,使用仓库自带示例素材)

  1. 输入素材(仓库内置,已核验可达): - 视频:data/video/yongen.mp4(https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/data/video/yongen.mp4,HTTP HEAD 实测 1,870,923 字节) - 音频:data/audio/yongen.wav(https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/data/audio/yongen.wav,实测 1,536,078 字节)
  2. 配置:保持 configs/inference/test.yaml 中 task_0 默认值不变(即上述两个文件)。
  3. 命令(Linux / WSL2):
conda activate MuseTalk
cd MuseTalk
sh inference.sh v1.5 normal
  1. 处理过程:ffmpeg 抽帧 → Whisper 提取音频特征 → 人脸关键点与 bbox 检测(坐标缓存为 .pkl)→ VAE 编码 latent → UNet 逐 batch 推理 → 解码贴回原画面 → ffmpeg 合成 yongen_yongen.mp4 并合并音频。
  2. 输出:results/test/v15/yongen_yongen.mp4(scripts/inference.py 输出命名规则)。
  3. Windows 等价命令:
python -m scripts.inference --inference_config configs\inference\test.yaml --result_dir results\test --unet_model_path models\musetalkV15\unet.pth --unet_config models\musetalkV15\musetalk.json --version v15 --ffmpeg_path <实际 ffmpeg bin 目录>

07.6 常见坑(现象 + 原因 + 解决,依据官方 README 与源码)

# 现象 原因 官方依据 / 解决方式
1 权重下载慢、连接 HF 超时 官方默认权重托管在 HuggingFace,境内直连不稳定 使用 sh ./download_weights.sh(Linux)或 download_weights.bat(Windows);两个脚本均内置 HF_ENDPOINT=https://hf-mirror.com 镜像;手动下载时把 HF 域名替换为 hf-mirror.com
2 报错 "Unable to find ffmpeg" 或视频合成失败 ffmpeg 不在 PATH,或 --ffmpeg_path 指向目录不正确 先执行 ffmpeg -version 确认;Linux sudo apt-get install ffmpeg;Windows 从 https://github.com/BtbN/FFmpeg-Builds/releases 下载 static 包,把 bin 加入 PATH,或在命令中传正确的 --ffmpeg_path(README Setup FFmpeg + Quickstart Prerequisites)
3 显存不足(OOM) 未开 fp16,或 batch 过大;官方最低实测为 4GB 显存机型(fp16) 普通推理加 --use_float16;Gradio 启动加 --use_float16(README:去掉该选项画质更好,但显存占用与推理时间增加);必要时降低 --batch_size
4 依赖版本冲突、导入报错 requirements.txt 为钉版环境(numpy 1.23.5、transformers 4.39.2、diffusers 0.30.2 等),MMLab 也有固定版本 严格按 README 顺序安装:先 pip install -r requirements.txt,再用 mim 安装 mmcv==2.0.1 / mmdet==3.1.0 / mmpose==1.1.0;不要随意 pip install -U 升级这些包
5 成片口型节奏与原视频帧率不匹配 输入视频帧率不是 25fps(训练帧率) README:输入视频建议 25fps;帧率偏低时先插帧,或用 ffmpeg 转成 25fps;Gradio 的 check_video 会自动把上传视频转 25fps(app.py 源码)
6 v1.5 下调整 bbox_shift 没有效果 scripts/inference.py / scripts/realtime_inference.py 中 version == "v15" 时强制 bbox_shift = 0;bbox_shift 是 v1.0 专属参数 仅在 --version v1 时使用 bbox_shift(README "For 1.0" 小节与 assets/BBOX_SHIFT.md);v15 通过 extra_margin、parsing_mode、左右脸颊宽度调整
7 实时推理第二次运行仍重复做人脸检测与坐标提取 realtime.yaml 中 preparation 仍为 True 新形象首次 True 完成准备;复用同一形象改为 False(README 实时推理注意事项第 1、4 条);若修改了 bbox_shift,脚本会提示需要重建 avatar
8 Windows 下实时推理达不到 30fps+ 官方 30fps+ 实时基准为 NVIDIA Tesla V100;README 未承诺消费级 Windows 显卡实时帧率 以本机实测为准;降低 --batch_size、使用 fp16;Windows 下 app.py 已按源码设置 WindowsSelectorEventLoopPolicy 解决异步 IO 问题(app.py 源码)
9 找不到 79999_iter.pth 或 resnet18 手动下载清单中人脸解析权重来自 Google Drive,容易漏下 Linux 脚本用 gdown --id 154JgKpzCPW82qINcVieuPH3fZ2e0P812 下载;Windows bat 从 HF ManyOtherFunctions/face-parse-bisent 拉取两个文件;按 07.4.2 目录结构核对
10 输出视频面部抖动 / 身份细节丢失 README "Limitations" 已声明:当前流水线逐帧生成存在抖动;胡须、唇形唇色等细节保留不充分 属模型已知局限;可结合 GFPGAN 等超分模型后处理(README Limitations 建议)

07.7 本节来源清单

# URL 用途 验证方式(2026-10-25)
1 https://github.com/TMElyralab/MuseTalk 官方仓库主页 curl HEAD 200
2 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/README.md README 全文(定位、News、环境、权重、配置、命令、Gradio、Limitations、License) web_fetch 完整读取(5638 字符,全文)
3 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/LICENSE MIT 代码许可 + 第三方组件许可清单核验 web_fetch 完整读取(3335 字符)
4 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/requirements.txt 钉版 Python 依赖清单(18 个依赖条目) web_fetch 完整读取(72 字符)
5 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/configs/inference/test.yaml 普通推理配置字段与示例路径 web_fetch 完整读取(47 字符)
6 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/configs/inference/realtime.yaml 实时推理配置字段与示例路径 web_fetch 完整读取(65 字符)
7 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/scripts/inference.py 普通推理参数表、v15 固定 bbox_shift、输出命名规则、ffmpeg PATH 处理 web_fetch 完整读取(2739 字符)
8 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/scripts/realtime_inference.py 实时推理参数表、准备阶段逻辑、fp16 固定处理 web_fetch(snippet 定向读取 argparse 与类实现段落)
9 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/app.py Gradio 参数(ip/port/share/fp16/ffmpeg_path)、界面控件、25fps 转码、Windows 事件循环策略 web_fetch 完整读取(5366 字符)
10 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/inference.sh Linux 普通/实时推理参数拼装规则 web_fetch 完整读取(485 字符)
11 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/download_weights.sh Linux 下载脚本、HF 镜像地址、下载文件清单 web_fetch 完整读取(430 字符)
12 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/download_weights.bat Windows 下载脚本、HF 镜像地址、人脸解析替代来源 web_fetch 完整读取(349 字符)
13 https://huggingface.co/TMElyralab/MuseTalk 官方模型权重仓库(v1.0 / v1.5) curl HEAD 200;HF API 列文件 musetalk/pytorch_model.bin、musetalkV15/unet.pth 等
14 https://huggingface.co/spaces/TMElyralab/MuseTalk 官方在线 Gradio Demo curl HEAD 200
15 https://arxiv.org/abs/2410.10122 官方技术报告 curl HEAD 200
16 https://arxiv.org/abs/2410.10122v2 技术报告 v2(README News 10/18/2024 引用) curl HEAD 200
17 https://huggingface.co/stabilityai/sd-vae-ft-mse/tree/main sd-vae-ft-mse 权重来源 curl HEAD 200;权重体积 HTTP HEAD 334,707,217 B
18 https://huggingface.co/openai/whisper-tiny/tree/main whisper-tiny 权重来源 curl HEAD 200;体积 HTTP HEAD 151,095,027 B
19 https://huggingface.co/yzd-v/DWPose/tree/main DWPose 权重来源 curl HEAD 200;体积 HTTP HEAD 406,878,486 B
20 https://huggingface.co/ByteDance/LatentSync/tree/main SyncNet 权重来源 curl HEAD 200;体积 HTTP HEAD 1,488,019,828 B
21 https://drive.google.com/file/d/154JgKpzCPW82qINcVieuPH3fZ2e0P812/view?pli=1 face-parse-bisent 79999_iter.pth 官方手动下载链接 来自 README 手动清单;Google Drive 体积本次未能取得(待验证)
22 https://download.pytorch.org/models/resnet18-5c106cde.pth resnet18 权重官方直链 curl HEAD 200;体积 46,827,520 B
23 https://hf-mirror.com 官方脚本内置 HF 国内镜像 curl HEAD 200;镜像地址由 #11、#12 脚本源码核验
24 https://github.com/BtbN/FFmpeg-Builds/releases README 指定的 Windows/Linux ffmpeg static 构建下载页 curl HEAD 200
25 https://github.com/chaojie/ComfyUI-MuseTalk README "Third party integration" 第三方 ComfyUI 集成(README 注明未由官方验证维护) curl HEAD 200
26 https://github.com/user-attachments/assets/02f4a214-1bdd-4326-983c-e70b478accba 图 07-1 模型结构图原图(README ![Model Structure]) curl -L 跟随重定向下载 + file 校验 PNG 1934×646,410,486 字节
27 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/assets/figs/gradio_2.png 图 07-2 Gradio 参数面板原图 curl 下载 + file 校验 PNG 1781×1066,75,170 字节
28 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/data/video/yongen.mp4 端到端示例输入视频 HTTP HEAD 206,1,870,923 字节
29 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/data/audio/yongen.wav 端到端示例输入音频 HTTP HEAD 206,1,536,078 字节
30 https://raw.githubusercontent.com/TMElyralab/MuseTalk/main/data/audio/eng.wav 配置 task_1 / realtime audio_1 示例音频 HTTP HEAD 206,1,920,078 字节
31 https://github.com/TMElyralab/MuseTalk/releases GitHub Releases 页面 curl 徽章查询确认:官方未发布 Release 包
32 https://github.com/TMElyralab/MuseV README 推荐的配套文本/图片/姿态生成视频方案(组合使用) README "Combining MuseV and MuseTalk" 引用;未单独抓取页面
33 https://download.pytorch.org/whl/cu118 README 安装命令中 torch 2.0.1 cu118 wheel 索引 curl HEAD 200

08. Hugging Face speech-to-speech —— 本地全链路实时语音对话(语音进、语音出)开源语音智能体

适用场景说明:面向博主个人电脑本地部署,基线环境 Windows 10/11 + WSL2(Ubuntu 24.04)、RTX 3070 8GB / RTX 4090 24GB,另含 Linux 云服务器视角。本节严格以官方仓库 README、docs/configuration.md、demo/README.md 与 src/speech_to_speech/ 下 STT / LLM / TTS 组件指南原文为事实来源;README 未提供的 Colab / T4 方案、官方未给出的显存数值均如实标注,不做推测补充。

08.1 项目定位与基本信息

项目 内容
一句话定位 一个由开源模型拼装、完全在本机运行的低延迟语音智能体:一条命令启动对话,无需 API key、不依赖云服务;默认流水线为 Silero VAD → Parakeet TDT → Qwen3.5-4B → Qwen3-TTS,每个环节均可替换;服务端以 WebSocket / WebRTC 提供 OpenAI Realtime 协议,原本对接 OpenAI Realtime API 的客户端可直接指向本机(README 开篇原文:"A low-latency voice agent built from open models that runs entirely on your computer. One command starts a conversation: no API key, no cloud service.")。
开源许可 Apache License 2.0。出处:README 顶部 License 徽章链接 ./LICENSE;官方仓库 LICENSE 文件开头为 Apache License Version 2.0, January 2004(已下载原文核对)。注意:项目代码 Apache-2.0,但部分可选 TTS 模型权重另有许可(如 OmniVoice 预训练权重为 CC-BY-NC、Phonon 40M 为 CC BY-NC 4.0,README 各小节警示,商用前需单独核对模型卡)。
官方 GitHub 仓库 https://github.com/huggingface/speech-to-speech
官方文档 / 官网 主文档即仓库 README:https://github.com/huggingface/speech-to-speech ;YAML 配置指南:https://github.com/huggingface/speech-to-speech/blob/main/docs/configuration.md ;浏览器 Demo 说明:https://github.com/huggingface/speech-to-speech/blob/main/demo/README.md ;组件指南:STT https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/STT/README.md 、LLM https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/LLM/README.md 、TTS https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/TTS/README.md ;PyPI 发行页:https://pypi.org/project/speech-to-speech/ 。
版本信息 截至 2026-10-25 官方 PyPI 最新版:1.1.0(来源:https://pypi.org/pypi/speech-to-speech/json ,info.version;requires_python: >=3.11)。README 要求 CPython 3.11–3.14(推荐 3.11);README 原文注明 Python 3.10 已于 2026-10-01 EOL 后不再支持。
默认流水线各环节模型(README「How it works」「Supported Components」表) ① VAD:Silero VAD v5;② STT:Parakeet TDT 0.6B v3;③ LLM:Linux/Windows NVIDIA 走 Transformers 加载 Qwen3.5-4B,Apple Silicon 走 MLX 加载 Qwen3.5-4B-4bit;④ TTS:Qwen3-TTS-12Hz-1.7B-CustomVoice(Linux 下 GGML 后端,macOS 下 mlx-audio)。
协议与端口 服务端实现 OpenAI Realtime 协议核心事件集,WebSocket 路径 /v1/realtime,默认 ws://127.0.0.1:8765/v1/realtime(README「Realtime API」节);浏览器 Demo 端口 7860(demo README)。

08.2 官方图片

  • 下图为官方 README 顶部 logo(README 第 3 行 <img src="https://raw.githubusercontent.com/huggingface/speech-to-speech/main/logo.png" width="600"/>):

Hugging Face speech-to-speech 官方 logo

项目 记录
本地文件 https://zhouruolin.cn/upload/08_speech2speech_logo.png
图片来源 URL https://raw.githubusercontent.com/huggingface/speech-to-speech/main/logo.png
下载方式 curl -sL -o 08_speech2speech_logo.png "https://raw.githubusercontent.com/huggingface/speech-to-speech/main/logo.png"
格式 / 体积校验 file 命令确认:PNG image data, 1677 x 1155, 8-bit/color RGBA, non-interlaced;体积 66,165 字节(约 64.6 KB),大于 20 KB 阈值。

08.3 环境要求

维度 官方说明(README Quickstart / Installation / LLM Backends / Supported Components 节 + PyPI 元数据)
操作系统 README CI 覆盖矩阵:Linux(CPython 3.11、3.12、3.13、3.14,完整测试套件 + 冒烟测试);Apple Silicon macOS(3.11–3.14 冒烟测试);Windows 不在该兼容性矩阵覆盖范围内(README 原文:"Windows is not covered by this compatibility matrix")。Ubuntu 需先安装音频库 libportaudio2、libsndfile1;Windows 激活命令为 .venv\Scripts\Activate.ps1。WSL2(Ubuntu 24.04)按 Linux 路径部署是官方文档描述最完整的 NVIDIA 路径。
GPU 与显存 README「Quickstart」平台模型表:Apple Silicon Mac:Qwen3.5-4B 4-bit(MLX LM),规划 16 GB 统一内存;Linux / Windows NVIDIA:Qwen3.5-4B(Transformers),规划 24 GB 显存;其他机器:Qwen3.5-4B 走 Transformers 跑 CPU,回复缓慢。README「Combining with llama.cpp」节:使用默认语音模型时,Mac 规划 24 GB 统一内存、NVIDIA 规划 16 GB 显存,其中约 8 GB 由语音流水线占用。README 未公布 8GB 显卡的官方可行配置(见 08.4「RTX 3070 8GB 现实说明」)。
内存 README 未单独公布系统内存下限;Mac 路径以 16 GB 统一内存为规划值(MLX 4-bit);NVIDIA 路径按 24 GB 显存规划。
依赖 基础包 pip install speech-to-speech 已包含默认流水线全部依赖:Silero VAD + Parakeet TDT(监听)、Qwen3.5-4B(回复)、Qwen3-TTS(语音)、本地音频客户端与 Realtime 服务端。可选后端以 pip extras 方式安装(清单见 08.4)。浏览器 Demo 另需 Node.js / npm 与 uv;源码开发方式依赖 uv。默认 Linux Qwen3-TTS wheel 面向 CUDA 12.8 + Ubuntu 24.04 编译(README「CUDA Note for Qwen3-TTS」节)。
磁盘空间(含模型权重体积,本环境经 HF tree API 实测) 默认流水线首次运行自动下载模型;以下为实测仓库体积:
默认模型 HF 仓库 实测体积
Qwen3.5-4B(Linux/Windows Transformers 权重) https://huggingface.co/Qwen/Qwen3.5-4B 约 8.7 GB
Qwen3-TTS-12Hz-1.7B-CustomVoice https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice 约 4.2 GB
Parakeet TDT 0.6B v3 https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3 约 5.3 GB
Qwen3.5-4B-4bit(仅 Mac MLX) https://huggingface.co/mlx-community/Qwen3.5-4B-4bit 约 2.9 GB

另含 Silero VAD、Smart Turn v3.2 ONNX 检查点等小型资源;首次在线启动缓存完成后可离线运行(README「Offline Operation」节)。

08.4 最详细部署步骤(Windows 与 WSL2 双视角)

1. 依赖安装

WSL2(Ubuntu 24.04,官方文档描述最完整的 Linux 路径):

# README Quickstart 原文:先装音频系统库
sudo apt-get install libportaudio2 libsndfile1

# Python 3.11–3.14(推荐 3.11),创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate

Windows 原生:README 仅给出环境激活命令 .venv\Scripts\Activate.ps1,并明确 Windows 不在 CI 兼容性矩阵内;默认 Qwen3-TTS GGML wheel 面向 Linux 编译,原生 Windows 预期存在兼容性风险。建议 NVIDIA 显卡用户优先走 WSL2 路径;原生 Windows 步骤如下,问题需自行排查:

python -m venv .venv
.\.venv\Scripts\Activate.ps1

源码开发方式(README「From Source」节,Linux/macOS):

git clone https://github.com/huggingface/speech-to-speech.git
cd speech-to-speech
uv sync --python 3.11
source .venv/bin/activate

2. 项目下载 / 安装(README「Installation」节,PyPI 官方方式)

pip install speech-to-speech

可选后端 extras(README「Optional Components」节原文命令):

pip install "speech-to-speech[kokoro]"          # Kokoro-82M TTS(macOS 需 Python 3.11–3.12)
pip install "speech-to-speech[kitten]"          # KittenTTS
pip install "speech-to-speech[pocket]"         # Pocket TTS
pip install "speech-to-speech[phonon]"         # Phonon TTS(检查点另行提供)
pip install "speech-to-speech[chattts]"        # ChatTTS
pip install "speech-to-speech[omnivoice]"      # OmniVoice TTS(CUDA / Intel XPU / Apple Silicon)
pip install "speech-to-speech[faster-whisper]" # Faster Whisper STT
pip install "speech-to-speech[whisper-mlx]"   # Lightning Whisper MLX STT(macOS)
pip install "speech-to-speech[paraformer]"     # Paraformer STT(FunASR)
pip install "speech-to-speech[fireredvad]"     # FireRed streaming VAD
pip install "speech-to-speech[nemo]"           # Parakeet Unified / Nemotron / Orukeet STT(NeMo)
pip install "speech-to-speech[mlx-lm]"        # macOS mlx-vlm 视觉模型支持

3. 模型 / 权重下载(官方来源 + 国内加速 + 显存现实说明)

官方来源:首次 speech-to-speech local 启动时自动从 Hugging Face Hub 下载默认流水线模型(README Quickstart:"The first run downloads the models, so give it a few minutes");README「Offline Operation」节要求先在线跑通一次、缓存齐 STT / LLM / TTS / Silero VAD / NLTK / Smart Turn 资源后,再用 HF_HUB_OFFLINE=1 离线运行。

国内加速:沿用 huggingface_hub 标准环境变量 HF_ENDPOINT(机制说明:https://huggingface.co/docs/huggingface_hub/guides/environment-variables ):

export HF_ENDPOINT=https://hf-mirror.com

CUDA wheel 适配(README「CUDA Note for Qwen3-TTS」节原文):Linux 下 Qwen3-TTS GGML 后端来自 faster-qwen3-tts[ggml],PyPI 默认 qwentts-cpp-python wheel 面向 CUDA 12.8 与 manylinux_2_39(即 Ubuntu 24.04);CUDA 运行时或 glibc 更旧时,先从 HF wheelhouse 安装匹配 wheel,再装 speech-to-speech:

# CUDA 13.x
pip install "qwentts-cpp-python==0.3.1+cu130" \
  -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu130

# CUDA 12.4
pip install "qwentts-cpp-python==0.3.1+cu124" \
  -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu124

# 纯 CPU 退路
pip install "qwentts-cpp-python==0.3.1+cpu" \
  -f https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cpu

pip install speech-to-speech

备选:README 注明可传 --qwen3_tts_backend torch 使用旧版 CUDA-graphs 实现替代 GGML。

RTX 3070 8GB 现实说明(严格按 README 边界,不做外推):

路径 README 依据 8GB 可行性结论
默认 NVIDIA 流水线(Qwen3.5-4B Transformers + Qwen3-TTS + Parakeet) README 平台表规划 24 GB 显存 8GB 不满足官方规划值;README 未提供 8GB 官方配置与量化降级命令,能否跑通需本机实测,本节不承诺可用。
llama.cpp 外接 LLM README「Combining with llama.cpp」节规划 NVIDIA 16 GB 显存,其中约 8 GB 归语音流水线 16 GB 规划值仍高于 8GB;README 未给出 8GB 量化方案,属待实测路径。
纯 CPU 兜底 README 平台表「Other machines: Qwen3.5-4B via Transformers on CPU — Slow replies」 官方明示可用但回复缓慢;8GB 显卡机器可作为验证流程的退路。
托管 LLM 后端(语音识别 / 合成留在本地,LLM 走远程) README「Local speech with a hosted LLM」节:"Speech recognition and synthesis stay local, so your audio never leaves your computer; transcribed text and conversation history go to the provider." 本机仅承担 STT + TTS 流水线,显存压力下降;需对应服务商 API key(凭据见 08.4 第 4 步)。
更换更小 LLM README 仅给出 --model_name Qwen/Qwen3.5-9B(Linux/Windows)与 mlx-community/Qwen3.5-9B-4bit(Mac)示例,未列出 4B 以下官方推荐档位 自定义模型需自行核对显存与兼容性;README 未给出 8GB 量化方案,属待实测路径。

关于 Colab / T4:官方 README、docs/ 与 demo/README.md 全文未提供 Colab 笔记本或 T4 免费运行方案,本节不编造 Colab 路径;如需云端体验,请以官方仓库后续更新为准。

4. 关键配置(凭据与开关表)

凭据要求(README 各节原文,默认本地流水线不需要任何 key):

场景 凭据 / 环境变量 来源
默认本地流水线(STT + LLM + TTS 全本地) 无需 API key、无需云服务 README 开篇原文
OpenAI 托管 LLM(--llm_backend responses-api) OPENAI_API_KEY(export OPENAI_API_KEY=...) README「Local speech with a hosted LLM」节
HF Inference Providers(https://router.huggingface.co/v1) HF_TOKEN,参数 --responses_api_api_key "$HF_TOKEN" README「Responses API Backend」provider 表
OpenRouter(https://openrouter.ai/api/v1) OPENROUTER_API_KEY README provider 表
本地 vLLM / llama.cpp 服务 无需 key(vLLM omit or any string;llama.cpp 传空字符串 "") README provider 表
受限模型 Phonon 40M 检查点 先在 HF 接受条款,再设置 HF_TOKEN 或执行 hf auth login README「Phonon TTS」节
浏览器 Demo 网页搜索工具(可选) SERPER_API_KEY(Serper.dev);不配置则工具禁用 demo README「Tools」节
摄像头视觉输入 需服务端选视觉语言模型并传 --llm_is_vlm;默认模型为纯文本 demo README「Tools」节 + LLM README

模块级与流水线开关(README「CLI Reference」节 + 组件指南):

参数 默认 / 取值 说明
--device 按平台自动 所有环节统一设备;--llm_device 仅改 LLM 设备,--stt_device / --qwen3_tts_device 等仅改对应环节
--stt parakeet-tdt 识别后端;可选 whisper、faster-whisper、paraformer、qwen3-asr、parakeet-unified、nemotron-streaming、orukeet、openai、openai-realtime、vllm-realtime 等(STT README 清单)
--llm_backend Linux/Windows:transformers;macOS:mlx-lm 可选 responses-api / chat-completions 接远程或独立服务
--tts qwen3 合成后端;可选 kokoro、kitten、pocket、phonon、chattts、omnivoice、mms、openai、minimax、drama3 等(TTS README 清单)
--model_name 平台默认模型 替换本地 LLM 模型;Mac 用 MLX 转换名,Linux/Windows 用 Transformers 检查点名
--num_pipelines 1 隔离实例数量;服务端每流水线单元一个并发会话
--torch_num_threads N 未设置(Silero 加载后单线程) 进程级 PyTorch CPU 线程数;CPU STT 可权衡提速 Silero 变慢
--log_transcripts 关 开启后日志记录完整用户 / 助手转写(启动时告警:对话内容会进入日志收集系统)
--verbose / --log_level debug 关 诊断输出;--log_level debug 配合 --verbose 出详细本地日志
--no_smart_turn 默认开启 Smart Turn v3.2 关闭端点确认 ONNX 模型;--smart_turn_model_path 可指定本地 ONNX 路径
--host 0.0.0.0 默认 127.0.0.1 serve 暴露到网络时显式指定;服务端自身不做鉴权与限流,仅应在可信网络开启(README「LLM Proxy」节警示)
--playback-buffer-ms 后端默认缓冲(OpenAI 兼容 TTS 客户端缓冲 196 ms) 调大抗卡顿但延迟首句,调小启动快但易抖动

VAD 参数(README「VAD Parameters」节,Silero VAD v5):

参数 默认 说明
--thresh 源码默认 触发语音活动检测的阈值
--min_speech_ms 推荐搭配 384 判定为语音的最短语音时长
--min_speech_continuation_ms 推荐搭配 192 可重开软结束回合内的续说话滞回阈值
--min_silence_ms 64 ms 切分语音的最短静音长度
--short_segment_merge_ms 未设置 短于 --min_speech_ms 的相邻 VAD 段合并窗口
--speculative_reopen_ms 800 ms 软结束后延迟 800 ms 才提交回复,便于接续语音重开回合
--unanswered_reopen_ms 未设置 未收到助手输出的软结束回合最长可重开时长上限

Qwen3-TTS 参数(TTS README「6) Qwen3-TTS」节):

参数 默认 / 取值 说明
--qwen3_tts_model_name Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice TTS 检查点
--qwen3_tts_device 按平台自动 如 cuda / cpu
--qwen3_tts_backend 非 macOS 默认 ggml;可 torch GGML 或 CUDA-graphs 后端
--qwen3_tts_speaker Aiden 内置音色;Demo 可选 Aiden、Ryan、Dylan、Eric、Ono_Anna、Serena、Sohee、Uncle_Fu、Vivian(demo README 音色表)
--qwen3_tts_language auto 语言码;如 zh、en;模型卡覆盖中 / 英 / 日 / 韩 / 德 / 法 / 俄 / 葡 / 西 / 意 10 种语言
--qwen3_tts_ggml_quantization 后端默认 BF16 / Q8_0 / Q4_K_M / F32
--qwen3_tts_ref_audio 无 音色克隆参考音频;默认 CustomVoice 模型无需参考音频即可使用内置音色
--qwen3_tts_ref_cache_dir ~/.cache/faster-qwen3-tts/qwentts_refs GGML 音色参考缓存目录

5. 启动(README「Commands」节三条官方命令)

命令 行为 典型场景
speech-to-speech local 同一进程内组合 serve + 打包麦克风 / 扬声器客户端,回环连接 一条命令本地对话(README Quickstart 默认命令)
speech-to-speech serve 仅运行流水线服务端,WebSocket / WebRTC 监听 127.0.0.1:8765 对接自建 App / 设备 / 浏览器 Demo
speech-to-speech talk --url ws://127.0.0.1:8765/v1/realtime 打包麦克风 / 扬声器客户端,连接已有 Realtime 服务端 连到另一台机器上的服务端
# README Quickstart 原文命令(WSL2 / Linux)
python3 -m venv .venv
source .venv/bin/activate
pip install speech-to-speech
speech-to-speech local

停止:Ctrl+C。README 提示:佩戴耳机避免助手听到自己;或加 --local_audio_block_mic_during_playback 在播放期间屏蔽麦克风。

08.5 使用方法

启动方式与界面

  • 终端本地对话(local):启动后终端显示 Loading models…,音频设备就绪、会话配置完成后出现 Ready — start speaking.;用户消息黄色、助手回复绿色(支持颜色的终端);默认只显示最终用户转写与流式助手回复,隐藏后端转写副本、常规日志、工具细节与协议事件(README Quickstart 节)。
  • 浏览器 Demo(serve + demo/,demo README「Quick start (local)」节):需要仓库检出、uv、Node.js / npm。

```bash # 1) 启动语音服务端(首次启动下载模型,等待监听 ws://127.0.0.1:8765/v1/realtime) uv sync --python 3.11 uv run speech-to-speech serve

# 2) 安装浏览器 SDK 依赖并启动 Demo 应用 npm ci --prefix demo uv pip install -r demo/requirements.txt export SPEECH_TO_SPEECH_URL=ws://localhost:8765/v1/realtime uv run uvicorn --app-dir demo server:app --reload --port 7860 ```

打开 http://localhost:7860/ ,点击光球、允许麦克风权限后开始对话。Docker 方式(demo README 原文):

bash docker build -t s2s-demo demo/ docker run -p 7860:7860 -e SPEECH_TO_SPEECH_URL=ws://host.docker.internal:8765/v1/realtime s2s-demo

浏览器麦克风要求 HTTPS 或 localhost:127.0.0.1 与 localhost 可用,纯 http://192.168.x.y 局域网地址无法调用 getUserMedia()(demo README 原文)。 - OpenAI Realtime SDK 直连(README「Realtime API」节官方示例):

```python from openai import OpenAI

client = OpenAI( base_url="http://localhost:8765/v1", websocket_base_url="ws://localhost:8765/v1", api_key="not-needed", )

with client.realtime.connect(model="local") as conn: conn.send( { "type": "session.update", "session": { "type": "realtime", "instructions": "You are a helpful assistant.", "audio": { "input": { "turn_detection": { "type": "server_vad", "interrupt_response": True, } } }, }, } )

  for event in conn:
      print(event.type)

```

README 注明:服务端实现的是 OpenAI Realtime 核心事件子集(入站 input_audio_buffer.append、session.update、conversation.item.create、conversation.item.truncate、response.create、response.cancel;出站语音起止、流式转写、音频增量、工具调用、response.done),并非完整 API 等价。

中文对话配置(README「Multi-Language Support」节 + STT README 语种表)

默认 Parakeet TDT 仅支持 25 种欧洲语言(en, de, fr, es, it, pt, nl, pl, ru, uk, cs, sk, hu, ro, bg, hr, sl, sr, da, no, sv, fi, et, lv, lt),不含中文;中文对话必须切换 STT 后端:

目标 命令参数 依据
Whisper(Transformers,内置) --stt whisper --language zh README 多语言节:--language 属于 Whisper 后端;STT README Whisper 内部语种表含 zh
Faster Whisper(需先装 extra) pip install "speech-to-speech[faster-whisper]" 后 --stt faster-whisper --faster_whisper_stt_gen_language zh STT README「4) Faster-Whisper」节
Paraformer(中文导向) --stt paraformer(默认 paraformer-zh) STT README「6) Paraformer」节
TTS 中文输出 默认 Qwen3-TTS --qwen3_tts_language auto(模型卡覆盖中文);--detect_llm_output_language 按助手回复文本检测语言后送 TTS;--enable_lang_prompt 追加「请用用户语种回复」指令 README「Multi-Language Support」节

端到端示例:WSL2 本地中文语音对话(4090 24GB 推荐配置;3070 8GB 见 08.4 现实说明)

# 1) 系统音频库(README Quickstart Ubuntu 节)
sudo apt-get install libportaudio2 libsndfile1

# 2) 环境
python3 -m venv .venv
source .venv/bin/activate
pip install speech-to-speech

# 3) 中文对话启动:Whisper 识别中文 + 按助手回复语言检测 + Qwen3-TTS 自动语种
speech-to-speech local \
  --stt whisper \
  --language zh \
  --enable_lang_prompt \
  --detect_llm_output_language \
  --qwen3_tts_language auto

交互流程(README Quickstart 原文描述):开口说话 → 停顿 → 助手通过扬声器回答;Ctrl+C 停止;首次运行需等待模型下载;佩戴耳机或加 --local_audio_block_mic_during_playback 防止自激回声。

换音色示例(TTS README + demo README 音色表):

speech-to-speech local \
  --tts qwen3 \
  --qwen3_tts_speaker Ryan \
  --qwen3_tts_device cuda

外接 llama.cpp LLM 示例(README「Combining with llama.cpp」节原文命令,终端 1 起 LLM、终端 2 连流水线):

# 终端 1:llama-server 常驻
llama-server \
  -hf ggml-org/gemma-4-E4B-it-GGUF:Q4_0 \
  --alias local-gemma \
  --host 127.0.0.1 --port 8080 \
  -ngl all -np 1 -c 8192 -fa on \
  --no-mmproj \
  --reasoning off

# 终端 2:语音流水线接入本地 LLM
speech-to-speech local \
  --llm_backend responses-api \
  --model_name local-gemma \
  --responses_api_base_url http://127.0.0.1:8080/v1 \
  --responses_api_api_key ""

托管 LLM 示例(语音留本地,文本上云,README「Local speech with a hosted LLM」节):

export OPENAI_API_KEY=...
speech-to-speech local --llm_backend responses-api

08.6 常见坑

# 现象 原因 解决(README 官方依据)
1 助手反复听到自己的声音、对话自激循环 扬声器声音被麦克风回采;README Quickstart 明确提示需戴耳机 佩戴耳机;或启动时加 --local_audio_block_mic_during_playback 在播放期间屏蔽麦克风。
2 启动报 libcudart.so.12 缺失 / Qwen3-TTS wheel 加载失败 默认 qwentts-cpp-python wheel 面向 CUDA 12.8 + Ubuntu 24.04;本机 CUDA 或 glibc 更旧(README「CUDA Note」节) 先按 08.4 第 3 步安装匹配 wheel(cu124 / cu130 / cpu)再 pip install speech-to-speech;DGX Spark 等 ARM64 CUDA 13 环境按 README DGX Spark 小节单独处理;备选 --qwen3_tts_backend torch。
3 浏览器 Demo 打不开麦克风 / 无音频 getUserMedia() 仅允许 HTTPS 或 localhost;纯局域网 HTTP 地址被浏览器拒绝(demo README 原文) 用 http://localhost:7860/ 或 http://127.0.0.1:7860/ 访问;跨机访问需自行配置 HTTPS 反向代理。
4 中文说话后识别出乱码 / 空白 默认 STT Parakeet TDT 仅 25 种欧洲语言,不含中文(README 多语言表 + STT README 语种清单) 切换 --stt whisper --language zh,或安装 faster-whisper extra、--stt paraformer;确认 TTS 侧 --qwen3_tts_language auto 或显式 zh。
5 首次启动模型下载缓慢 / 超时 默认从 Hugging Face Hub 拉取 Qwen3.5-4B、Qwen3-TTS、Parakeet 等多 GB 模型 启动前 export HF_ENDPOINT=https://hf-mirror.com;在线跑通一次缓存后,用 HF_HUB_OFFLINE=1 speech-to-speech local 离线运行(README「Offline Operation」节);Smart Turn 检查点缺失时 --no_smart_turn 关闭。
6 安装可选 TTS 后 numpy 版本冲突报错 DeepFilterNet 要求 numpy<2,Pocket TTS 要求 numpy>=2,二者互斥(README「Note on DeepFilterNet」节) 不要在同一环境同时启用两者;按 README 说明仅在不使用 Pocket TTS 的环境手动安装 DeepFilterNet。
7 Windows 原生安装后依赖 / 音频库异常 README 兼容性矩阵未覆盖 Windows;Linux 音频库命令仅适用 Ubuntu;Qwen3-TTS GGML wheel 为 Linux 目标 优先使用 WSL2 Ubuntu 24.04 部署 NVIDIA 路径;原生 Windows 问题需自行对照报错排查,官方未提供 Windows 专用安装指引。

08.7 本节来源清单

# URL 用途 验证方式(2026-10-25)
1 https://github.com/huggingface/speech-to-speech 官方仓库主页 curl HTML 200(GitHub 主页受 robots.txt 限制 web_fetch,改用 raw README 全文精读 + curl 核验)
2 https://raw.githubusercontent.com/huggingface/speech-to-speech/main/README.md 主 README(定位、Quickstart、安装、平台模型表、凭据、LLM 后端、离线、多语言、VAD / 模块参数、TTS 后端清单的唯一事实来源) curl 200 下载后全文精读(972 行)
3 https://github.com/huggingface/speech-to-speech/blob/main/LICENSE Apache 2.0 许可证原文 curl raw LICENSE 200,开头 Apache License Version 2.0, January 2004 已核对
4 https://pypi.org/project/speech-to-speech/ PyPI 发行页(版本 1.1.0、Python >=3.11) curl 200;https://pypi.org/pypi/speech-to-speech/json 复核 info.version=1.1.0、requires_python>=3.11
5 https://github.com/huggingface/speech-to-speech/blob/main/docs/configuration.md YAML 配置指南(块定义、mac.yaml 示例、Python 启动 API) curl raw 200(183 行)
6 https://github.com/huggingface/speech-to-speech/blob/main/demo/README.md 浏览器 Demo 启动命令、端口 7860、localhost/HTTPS 限制、音色表、工具凭据、环境变量 curl raw 200(362 行)
7 https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/STT/README.md 各 STT 后端清单、语种表、语言参数归属 curl raw 200(318 行)
8 https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/LLM/README.md 本地模型选择、--llm_device、生成参数、API 后端 curl raw 200(已下载核对)
9 https://github.com/huggingface/speech-to-speech/blob/main/src/speech_to_speech/TTS/README.md Qwen3-TTS 参数前缀、音色、后端、量化开关 curl raw 200(391 行)
10 https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3 默认 STT 模型卡;仓库体积 5.3 GB(tree API 实测) curl 200
11 https://huggingface.co/Qwen/Qwen3.5-4B 默认 LLM 模型卡;仓库体积 8.7 GB(tree API 实测) curl 200
12 https://huggingface.co/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice 默认 TTS 模型卡;仓库体积 4.2 GB(tree API 实测);10 语种含中文说明取自模型卡 README curl 200;模型卡 README 语种清单已核对
13 https://huggingface.co/mlx-community/Qwen3.5-4B-4bit Mac MLX 默认模型;体积 2.9 GB(tree API 实测) curl 200
14 https://github.com/snakers4/silero-vad 默认 VAD 上游仓库 curl 200
15 https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu124 CUDA 12.4 匹配 wheel 目录(README CUDA Note) curl 200
16 https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cu130 CUDA 13.x 匹配 wheel 目录 curl 200
17 https://huggingface.co/datasets/andito/qwentts-cpp-python-wheels/tree/main/whl/cpu CPU 退路 wheel 目录 curl 200
18 https://huggingface.co/pipecat-ai/smart-turn-v3 Smart Turn v3.2 ONNX 检查点(README「Smart Turn endpointing」节) curl 200
19 https://huggingface.co/docs/huggingface_hub/guides/environment-variables HF_ENDPOINT / HF_HUB_OFFLINE 环境变量机制官方文档 curl 200
20 https://raw.githubusercontent.com/huggingface/speech-to-speech/main/docs/assets/endpoint-swap-light.gif 官方端点切换演示动图(仅登记,未嵌入正文) curl 200
21 https://github.com/huggingface/speech-to-speech/blob/main/example_configs/mac.yaml 官方 Mac YAML 配置示例 curl raw 200
22 https://github.com/huggingface/speech-to-speech/blob/main/docs/openai-compatible-stt.md OpenAI 兼容 STT 端点指南 curl raw 200
23 https://github.com/huggingface/speech-to-speech/blob/main/demo/livekit/README.md LiveKit Agents 接入说明 curl raw 200
24 https://huggingface.co/hexgrad/Kokoro-82M 可选 TTS Kokoro-82M 模型卡(README extras 清单) curl 200
25 https://github.com/2noise/ChatTTS 可选 TTS ChatTTS 上游(README extras 清单;README 多语言表标注支持英 / 中) curl 200
26 https://huggingface.co/kyutai-labs/pocket-tts 可选 TTS Pocket TTS 模型卡(README extras 清单) 本环境 curl 401(受限 / 需登录),链接取自 README,可用性以模型卡为准
27 https://github.com/huggingface/speech-to-speech.git 源码开发方式 git clone 地址(08.4 第 1 步) 与 #1 同一仓库;curl 200
28 https://raw.githubusercontent.com/huggingface/speech-to-speech/main/logo.png 08.2 节官方 logo 原始地址(README 第 3 行 <img> 引用) curl 200 下载,file 校验 PNG 1677×1155、66,165 字节
29 https://hf-mirror.com HF 国内镜像站首页;HF_ENDPOINT=https://hf-mirror.com 镜像目标 首页 curl 200;模型文件解析在本环境超时,镜像可用性以读者本地网络为准
30 https://router.huggingface.co/v1 HF Inference Providers 接入端点(README「Responses API Backend」provider 表,--responses_api_base_url) 裸 GET 根路径 404(API 端点需鉴权 / POST,非死链);地址逐字摘自 README provider 表
31 https://openrouter.ai/api/v1 OpenRouter 接入端点(README provider 表,--responses_api_base_url) 裸 GET 根路径 404(API 端点需鉴权 / POST,非死链);地址逐字摘自 README provider 表

说明:正文中 ws://127.0.0.1:8765/v1/realtime、http://localhost:7860/、http://127.0.0.1:8080/v1 等为本机回环示例地址,非外部引用,不列入来源清单。

待复核 / 边界说明:① 官方 README 未提供 Colab 或 T4 免费方案,本节未予编写;② 8GB 显存显卡的官方可行配置 README 未给出,08.4 已逐条标注边界;③ Pocket TTS 模型卡在本环境返回 401,安装该 extra 前需先在 HF 确认模型可见性与许可;④ 第三方可选后端(OmniVoice、Phonon 等)权重许可独立于项目 Apache-2.0,商用前须核对对应模型卡条款。

09. Open WebUI —— 自托管 LLM Web 界面(类 ChatGPT,可对接 Ollama / OpenAI 兼容接口)

适配场景:Windows 10/11 + WSL2(Ubuntu 24.04)本地部署;RTX 3070 8GB / RTX 4090 24GB 均可使用。Open WebUI 本身只是"前端 + 管理面板",不自带大模型,需要对接本机 Ollama、llama.cpp 或任意 OpenAI 兼容接口。

09.1 项目定位与基本信息

  • 一句话定位:一个可完全离线运行、功能丰富、面向自托管场景的 AI 平台界面(官方原文:"a self-hosted AI platform … built to run entirely offline"),原生支持 Ollama 与 OpenAI 兼容 API,为本地模型与云端模型提供与 ChatGPT 类似的对话体验,并内置知识库(RAG)、插件、工具调用等能力。
  • 开源许可:Open WebUI License(自定义许可,非标准 MIT/Apache/GPL)。
  • 出处:官方仓库 LICENSE 文件(https://raw.githubusercontent.com/open-webui/open-webui/main/LICENSE ,已下载核验)与 README "License" 一节(https://github.com/open-webui/open-webui )。
  • 关键条款(依据 LICENSE 文件原文概括):允许源码/二进制再分发与修改,但必须保留版权声明;不得在未经书面许可的情况下使用版权方/贡献者名义为衍生品背书;必须保留 "Open WebUI" 品牌(名称、Logo 及界面标识)——例外情形为:① 任意连续 30 天内终端用户不超过 50 人;② 获得版权方书面许可;③ 取得正式企业许可。代码库中沿用历史许可的旧组件,按各自原始许可条款执行(见仓库 LICENSE_HISTORY)。
  • 官方 GitHub 仓库:https://github.com/open-webui/open-webui
  • 官方官网:https://openwebui.com/ (品牌与产品介绍站,HTTP 200 已核验)。
  • 官方文档站:https://docs.openwebui.com/ (安装、配置、RAG、排障等全部官方说明,HTTP 200 已核验)。
  • 版本说明:截至 2026-10-25,官方最新 release 为 v0.12.4(发布时间 2026-10-25 08:07 UTC,来源:https://github.com/open-webui/open-webui/releases/tag/v0.12.4 );PyPI 包 open-webui 最新版本同为 0.12.4(来源:https://pypi.org/project/open-webui/ ,requires_python:<3.13.0a1,>=3.11)。

09.2 官方图片

两张图均来自官方文档站 docs.openwebui.com 的官方资源目录,使用 curl -L 下载,已用 file 命令核验为 PNG 且体积大于 20KB;未使用任何 AI 生成图或非官方截图。

图 09-1 Open WebUI 全新对话界面(官方文档截图)

Open WebUI 全新对话主界面,左侧为会话/工作区导航,中间为模型选择与输入框

图 09-2 Open WebUI 知识库(Knowledge)管理界面(官方文档截图)

Open WebUI Workspace > Knowledge 页面,列出已创建的知识库及其文件数量与摘要

09.3 环境要求

说明:Open WebUI 是界面与应用层,本地大模型推理的显存/内存需求取决于你外接的 Ollama / llama.cpp 模型,而不是 Open WebUI 本身。下表需求仅针对 Open WebUI 应用本体。

项目 要求 / 说明 官方依据
操作系统 ① Docker 方式:Windows 10/11 上通过 Docker Desktop + WSL2 backend 运行(官方 WSL 指南支持该路径);也支持 Linux、macOS。② pip 方式:Python 3.11 或 3.12;Python 3.13 暂不支持(部分依赖尚未提供 3.13 兼容包)。 https://docs.openwebui.com/getting-started/quick-start/ (Python version compatibility 一节);https://pypi.org/project/open-webui/ (requires_python)
GPU 与显存 应用本体不强制要求 NVIDIA GPU。:cuda 镜像为 Open WebUI 自带的本地 Whisper、嵌入与重排序模型启用 NVIDIA CUDA 加速(USE_CUDA_DOCKER 环境变量说明);Ollama 模型是否使用 GPU 由 Ollama 自身决定,与 WebUI 镜像无关。无 NVIDIA GPU 时本地模型自动回退 CPU 运行。 https://docs.openwebui.com/getting-started/quick-start/ (GPU support (Nvidia) 镜像标签表);https://docs.openwebui.com/reference/env-configuration (USE_CUDA_DOCKER、本地模型运行设备说明)
内存(应用本体) 官方 2026-10-16 在 Docker Desktop(Linux/arm64)上实测:slim 镜像空闲内存中位数约 292.2 MiB(区间 291.8–292.6 MiB)。官方明确说明:该数值是空闲实测值,不是最低内存要求,也不是容器内存上限;浏览器、Docker VM、模型服务与外部服务需另算内存。 https://docs.openwebui.com/getting-started/quick-start/ (RAM usage 一节,含实测方法与镜像摘要哈希)
磁盘空间 标准 :main 镜像下载约 1.62 GB;:slim 镜像约 197 MB(Linux/amd64,比标准镜像小 88%)。对话记录、上传文件、向量库、缓存均落在数据卷/数据目录中,需预留增长空间。 https://docs.openwebui.com/getting-started/quick-start/ (镜像标签与体积说明)
依赖(Docker 方式) Docker Engine 或 Docker Desktop(启用 WSL2 backend);GPU 加速需 NVIDIA Container Toolkit(Linux/WSL 侧,官方 README 链接指向 NVIDIA 文档)。 https://docs.openwebui.com/getting-started/quick-start/ ;https://github.com/open-webui/open-webui (README Quick Start)
依赖(pip 方式) Python 3.11/3.12、pip(或 uv);无 NVIDIA GPU 的 Linux x86_64 机器需先安装 CPU 版 PyTorch,否则 PyPI 默认 torch 会一并拉取 CUDA 运行库。 https://docs.openwebui.com/getting-started/quick-start/ (No NVIDIA GPU? 一节)
数据库 / 存储 默认 SQLite(可加密),可切换 PostgreSQL;文件默认本地磁盘,可配置 S3 / Google Cloud Storage / Azure Blob。向量库默认 ChromaDB(内置),另有 PGVector、Qdrant、Milvus、Elasticsearch、OpenSearch、Pinecone、S3Vector、Oracle 23ai 等可选。 https://docs.openwebui.com/features/ ;https://docs.openwebui.com/reference/env-configuration

09.4 最详细部署步骤(Windows 与 WSL2 两种视角,精确命令)

09.4.1 方式 A:Docker 一键部署(官方推荐路径)

A-1 依赖安装(Windows 视角)
  1. 安装 Docker Desktop for Windows,安装过程中勾选 "Use WSL 2 instead of Hyper-V"(WSL2 backend)。安装包来源:https://www.docker.com/products/docker-desktop/ (官方 Quick Start 的 WSL 指南引用)。
  2. 打开 Docker Desktop → Settings → Resources → WSL Integration,勾选 "Enable integration with my default WSL distro";若使用非默认发行版,在列表中勾选对应 Ubuntu 24.04。保存后重启 Docker Desktop。
  3. (可选,使用 :cuda 镜像时)WSL2 内安装 NVIDIA Container Toolkit 并安装显卡驱动;仅对接外部 Ollama / OpenAI 接口时不需要。

官方 WSL 指南硬性提示:始终从 WSL 终端(Ubuntu 24.04)执行 docker 命令,不要在 PowerShell 或 CMD 里执行;使用 -v 挂载卷时,路径必须对 WSL 发行版可达。 依据:https://docs.openwebui.com/getting-started/quick-start/ (Using Docker with WSL → Step 1–4、Important Notes)

A-2 拉取镜像并启动(WSL2 视角,Ubuntu 24.04 终端内执行)

官方默认命令(Ollama 安装在本机 Windows/WSL 上的场景,已按官方文档带 --add-host 与 WEBUI_SECRET_KEY):

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  -e WEBUI_SECRET_KEY=your-secret-key \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

命令参数对照(均来自官方 Quick Start 文档):

参数 作用(官方说明)
-p 3000:8080 本机 3000 端口映射到容器内 8080 端口;左侧 3000 被占用时可改成其他端口。
--add-host=host.docker.internal:host-gateway 让容器能访问宿主机上的服务(如宿主机 Ollama host.docker.internal:11434)。
-v open-webui:/app/backend/data 必须挂载的数据卷:聊天记录、用户、设置、上传文件全部在此卷中;漏挂会在容器重建后丢数据(README 有 WARNING 强调)。
-e WEBUI_SECRET_KEY=your-secret-key 会话签名密钥,设置一次后保持不变;不固定密钥,容器重建后所有用户都会被登出。可先用 openssl rand -hex 32 生成随机值替换 your-secret-key。
--restart always 系统重启后容器自动拉起。
ghcr.io/open-webui/open-webui:main 标准镜像(官方推荐),内置本地语音识别与嵌入模型。

常用镜像标签(官方 Quick Start "Tag / Use case" 表):

标签 用途
:main 标准镜像(推荐),应用 + 内置 STT/嵌入模型。
:slim / :main-slim 约 197MB(标准镜像约 1.62GB);仅适用托管 API / 独立 Ollama 等外接场景,不含本地 PDF 解析、本地 Whisper、本地嵌入引擎等组件。
:cuda NVIDIA GPU 加速,CUDA 12.8,需配合 --gpus all;:cuda126 为 CUDA 12.6 构建。
:ollama 容器内捆绑 Ollama 的一体化镜像。
:dev 开发分支每日构建,含未稳定功能,生产勿用。

GPU 加速变体(官方文档命令,NVIDIA 机型可选):

docker run -d -p 3000:8080 --gpus all \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  -e WEBUI_SECRET_KEY=your-secret-key \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:cuda

仅使用 OpenAI 等云端 API(本机不跑 Ollama):

docker run -d -p 3000:8080 \
  -e OPENAI_API_KEY=your_secret_key \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

捆绑 Ollama 的一体化镜像(GPU 版):

docker run -d -p 3000:8080 --gpus=all \
  -v ollama:/root/.ollama \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:ollama

CPU-only 版本去掉 --gpus=all 即可(官方文档命令一致)。

A-3 模型 / 依赖下载
  • Ollama 模型:先在本机安装 Ollama(https://ollama.com/ )并拉取模型,例如 ollama pull qwen2.5:7b;Open WebUI 启动后可在模型选择框直接输入模型名触发拉取,也可在 Settings → Admin → Connections → Manage Ollama API Connections → Manage 面板中下载/管理模型(官方 Ollama 指南)。
  • 本地嵌入模型(RAG 用):默认 sentence-transformers/all-MiniLM-L6-v2,首次启动知识库上传流程时自动从 Hugging Face 下载;无网络/离线环境可设置 HF_HUB_OFFLINE=1 禁止联网下载(README Offline Mode 一节)。
A-4 国内网络加速(可验证的通用思路,非官方指定镜像)
  • 嵌入模型等 Hugging Face 资源下载慢 / SSL 报错:官方排障文档给出的示例做法是在 docker run 中增加 HF_ENDPOINT 环境变量指向镜像站:

bash docker run -d -p 3000:8080 \ -e HF_ENDPOINT=https://hf-mirror.com/ \ --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui --restart always \ ghcr.io/open-webui/open-webui:main

依据:https://docs.openwebui.com/troubleshooting/connection-error (SSL Connection Issue with Hugging Face 一节,原文示例命令即 HF_ENDPOINT=https://hf-mirror.com/)。 - ghcr.io 镜像拉取慢:官方文档说明同一组镜像也镜像到 Docker Hub 仓库 openwebui/open-webui(仅部分标签:latest、latest-<variant>、裸 <variant> 如 slim/cuda/ollama,以及 X.Y.Z / X.Y 版本号标签;:main、:dev、:vX.Y.Z、:git-<sha> 仅存在于 ghcr.io)。可改用 Docker Hub 仓库拉取,例如:

bash # Docker Hub 官方镜像备选(标签集合见上) docker pull openwebui/open-webui:latest docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway \ -v open-webui:/app/backend/data --name open-webui --restart always \ openwebui/open-webui:latest

依据:https://docs.openwebui.com/getting-started/quick-start/ (Docker Hub 镜像说明一节);仓库页面 https://hub.docker.com/r/openwebui/open-webui (HTTP 200 已核验,当前含 0.12.4、0.12.4-cuda 等标签)。 - 其余通用可验证思路(非官方指定镜像):① 在 Docker Desktop → Settings → Docker Engine 的 registry-mirrors 中配置本机网络可达的 Docker Registry 镜像(Docker 官方通用能力,文档:https://docs.docker.com/desktop/settings/windows/ ),重启 Docker Desktop 后重试;② 网络条件允许时改用下文 pip 方式安装,规避容器镜像;③ 换用 :slim 标签减小下载体积。以上为通用部署建议,不代表 Open WebUI 官方背书某个第三方镜像站。

A-5 验证启动
docker logs -f open-webui        # 等待日志出现 "Application startup complete"(官方 Quick Start 就绪判据)

浏览器访问 http://localhost:3000 ,首次进入出现 "Get started with Open WebUI" 欢迎页并提供 "Create Admin Account" 入口即部署成功(首个注册账号自动成为管理员)。若页面长时间不加载,按 09.6 第 1、6 条排查连接与端口。

09.4.2 方式 B:pip 轻量部署(WSL2 Ubuntu 24.04 或 Windows 本机 Python 环境)

B-1 依赖安装(WSL2 Ubuntu 24.04 视角)
  1. 安装 Python 3.11 或 3.12(不要用 3.13,官方明确暂不支持);建议使用虚拟环境隔离:
sudo apt update
sudo apt install -y python3 python3-venv python3-pip
python3 -m venv ~/open-webui-venv
source ~/open-webui-venv/bin/activate
  1. 无 NVIDIA GPU 的机器先装 CPU 版 PyTorch(官方文档要求,避免拉入 CUDA 运行库):
pip install torch --index-url https://download.pytorch.org/whl/cpu
B-2 项目安装
pip install open-webui
open-webui serve
  • 官方 README 同样给出该命令组合;文档补充:可先 pip install open-webui,再执行 open-webui serve。
  • 升级命令:pip install -U open-webui。
  • 卸载:pip uninstall open-webui;数据目录默认 site-packages/open_webui/data,卸载不会自动删除,需手动清理。

Windows 本机 Python 视角:命令相同(pip install open-webui → open-webui serve);官方文档提示命令找不到时,先激活安装该包的虚拟环境——open-webui 可执行文件位于环境的 bin(Windows 为 Scripts)目录。Windows 本机建议 Python 3.12。

B-3 关键启动参数与环境变量
# 指定数据目录(避免数据落在 site-packages 内)
DATA_DIR=~/.open-webui open-webui serve

# 自定义监听地址与端口(默认 http://localhost:8080)
open-webui serve --host 0.0.0.0 --port 3000
B-4 验证启动

浏览器访问 http://localhost:8080(--port 3000 时访问 http://localhost:3000 )。

09.4.3 关键配置项总表(Docker / pip 通用环境变量,来源:官方 Env Configuration 文档)

配置项 默认值 说明
OLLAMA_BASE_URL 本机 pip:http://localhost:11434;Docker:http://host.docker.internal:11434 Ollama 后端地址(旧变量名 OLLAMA_API_BASE_URL 已弃用)。多实例用 OLLAMA_BASE_URLS 分号分隔。
OPENAI_API_BASE_URL https://api.openai.com/v1 OpenAI 兼容后端 Base URL;多实例 OPENAI_API_BASE_URLS 分号分隔。
OPENAI_API_KEY 空 OpenAI 兼容接口密钥;多密钥 OPENAI_API_KEYS 分号分隔。
RAG_EMBEDDING_ENGINE 空(默认 SentenceTransformers 本地引擎) 可选:ollama、openai、azure_openai。
RAG_EMBEDDING_MODEL sentence-transformers/all-MiniLM-L6-v2 RAG 嵌入模型名;本地为 Sentence-Transformer 模型。
DATA_DIR ./data 上传文件、缓存、向量库等数据根目录(pip 方式)。
WEBUI_SECRET_KEY 启动目录下自动生成 .webui_secret_key 会话签名密钥;建议显式固定,防止重建容器/目录后全员登出。
ENABLE_RAG_HYBRID_SEARCH False 开启 BM25 关键词检索 + 向量检索混合,配合重排序模型提升命中率。
RAG_TOP_K 3 每次查询从每个挂载知识库/文件取回的默认分片数;混合检索开启时为重排序候选数。
RAG_TOP_K_RERANKER 3 混合检索下重排序后真正送入模型的分片数。
RAG_RELEVANCE_THRESHOLD 0.0 配合重排序使用的相关度阈值。
HF_ENDPOINT 空 Hugging Face 端点替换地址(国内镜像用法见 09.4.1 A-4)。
HF_HUB_OFFLINE 空 设为 1 后禁止启动时联网下载模型(离线环境)。
容器内端口 8080 Docker 发布端口由 -p 左侧决定(默认示例映射 3000:8080)。
数据卷(Docker) /app/backend/data 必须挂载,否则容器重建后聊天记录/用户/设置全部丢失。

09.5 使用方法

09.5.1 启动方式速查

部署方式 启动命令 访问地址
Docker(标准) docker start open-webui(首次 docker run 见 09.4.1 A-2) http://localhost:3000
Docker(--network=host 排障变体) docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main http://localhost:8080 (host 网络模式下端口为容器内 8080)
pip open-webui serve(可带 --host / --port,先激活 venv) http://localhost:8080

09.5.2 界面操作步骤

  1. 注册管理员:浏览器打开实例地址,首屏 "Create Admin Account" 创建账号;首个账号自动成为管理员(拥有用户管理与全部实例级设置权限),创建后注册自动关闭。后续如需开放注册:头像 → Settings → Admin → Authentication 打开 New Sign Ups;新账号默认 Pending 待管理员审批。 - 依据:https://docs.openwebui.com/getting-started/quick-start/ (Create the admin account);https://docs.openwebui.com/features/authentication-access/rbac/roles/ (Initial Setup:首个账号自动分配 Admin 角色)。
  2. 连接 Ollama: - 本机 Ollama 在 Docker 模式下默认探测 http://host.docker.internal:11434;pip 模式默认探测 http://localhost:11434。 - 手动管理:头像 → Settings → Admin → Connections,在 Manage Ollama API Connections 中查看/新增/编辑地址;在该面板的 Manage 对话框内可拉取、更新、删除模型,也可基于已有模型 Create Model。 - 多实例负载均衡:在 OLLAMA_BASE_URLS 中配置多个 URL,随机分配;各实例模型 ID 需完全一致才能合并显示。
  3. 连接 OpenAI 兼容接口 / llama.cpp / vLLM / LM Studio 等: - Settings → Admin → Connections → Manage OpenAI API Connections → + Add Connection。 - 填入 URL 与 API Key 后保存;模型列表自动获取。部分服务商不提供 /models 端点,需在连接设置的 Model IDs 白名单中手动填写模型 ID 后保存。 - llama.cpp 示例:llama-server --model /path/model.gguf --port 10000 --ctx-size 1024 --n-gpu-layers 40 启动后,容器内 WebUI 连接地址填 http://host.docker.internal:10000/v1(注意末尾 /v1);本机 pip 模式填 http://127.0.0.1:10000/v1;无密钥服务器 Auth 选 None;高级选项 Provider 下拉选 llama.cpp 可解锁模型加载指示与卸载按钮。 - 依据:https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-llama-cpp ;https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-openai-compatible 。
  4. 建立知识库(博客文章私有 RAG):
  5. 左侧 Workspace → Knowledge → 右上角 Create,填写知识库名称与描述。
  6. 上传 PDF / TXT / Markdown / Word / Excel / PowerPoint / CSV / JSON / HTML / SVG 等文件,等待处理完成。
  7. 在聊天框输入 # 引用知识库;也可在 Workspace → Models → Edit 中把知识库绑定到某个模型,使该模型只能检索挂载内容。
  8. 检索模式:Focused Retrieval(默认 RAG) 按查询语义取回相关分片;Full Context 把整篇文档全文注入每条消息,适合短篇参考文档。 - 依据:https://docs.openwebui.com/features/workspace/knowledge (含上传流程、两种检索模式、原生工具调用说明)。
  9. 发送首条消息:New Chat → 在输入框右下角模型选择器中选模型 → 输入问题 → 回车;可在对话中通过附件按钮挂载单个文件,就该文件单独提问(支持格式见知识库文档)。

09.5.3 常用参数说明表

位置 参数 / 选项 说明
连接配置 Prefix ID 多个后端提供同名模型时加前缀(如 remote/)区分;实例间前缀需一致才能合并模型。
连接配置 Model IDs (Filter) 模型白名单,留空显示全部;填入后仅列出指定模型。
连接配置 AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST 模型列表获取超时秒数,默认 10 秒;跨网络慢可调大(如 30)。
知识库 检索模式 Focused / Full Context 语义检索 vs 全文注入,见 09.5.2 第 4 步。
知识库 ENABLE_RAG_HYBRID_SEARCH 混合检索(BM25 关键词 + 向量检索);配置了重排序模型时附带重排序,默认关闭。
知识库 RAG_TOP_K / RAG_TOP_K_RERANKER 候选分片数 / 混合检索下重排序后送入模型的分片数(后者仅混合检索生效)。
模型高级参数 Function Calling Native(默认,模型原生调用工具)或 Legacy(兼容不支持原生工具调用的模型)。
实例设置 Task Model / TASK_MODEL_EXTERNAL 后台任务独立小模型:会话标题、Web 搜索查询生成等;Ollama 后端用 TASK_MODEL,OpenAI 兼容端点用 TASK_MODEL_EXTERNAL,避免占用主模型上下文。
实例设置 WEBUI_AUTH=False 单用户免登录模式(官方 Quick Start 提供该 Docker 变体命令)。

09.5.4 端到端示例:把博客 Markdown 文章做成私有问答知识库

前置条件:Docker 实例已运行,本机 Ollama 已 ollama pull qwen2.5:7b(示例模型,可替换为 3070 8GB 可流畅运行的模型)。

  1. 浏览器打开 http://localhost:3000 ,完成管理员注册。
  2. Settings → Admin → Connections 确认 Ollama 连接地址为 http://host.docker.internal:11434(Docker)或 http://localhost:11434(pip);模型选择框中能看到 qwen2.5:7b。
  3. Workspace → Knowledge → Create,命名 Blog-KB,把博客导出的若干 .md / .pdf 文章拖入上传,等待处理完成。
  4. 新建对话,模型选择 qwen2.5:7b,在输入框输入 #Blog-KB 引用知识库。
  5. 提问示例:"根据我上传的博客文章,总结一下 WSL2 下部署本地大模型的常见步骤,并引用对应文章原文段落。"
  6. 对照原文核验回答与引用来源;若模型检索不到内容,按 09.6 排障:检查嵌入引擎、切换 Hybrid Search、或在模型编辑中确认知识库已挂载。

09.6 常见坑(现象 + 原因 + 解决)

  1. 现象:Docker 中的 Open WebUI 报 Server Connection Error,模型列表为空,连不上本机 Ollama。 - 原因:容器内 127.0.0.1 指向容器自身而非宿主机;且 Ollama 默认只监听 127.0.0.1:11434。 - 解决:① 连接地址使用 http://host.docker.internal:11434(官方 README 与 Ollama 指南均要求 --add-host=host.docker.internal:host-gateway);② 让 Ollama 监听全部网卡:设置 OLLAMA_HOST=0.0.0.0 后重启 Ollama 服务;③ 兜底方案:docker run --network=host,环境变量 OLLAMA_BASE_URL=http://127.0.0.1:11434,此时 WebUI 访问地址变为 http://localhost:8080。 - 依据:https://github.com/open-webui/open-webui (README Troubleshooting);https://docs.openwebui.com/troubleshooting/connection-error (Connection to Ollama Server、Docker Connection Error)。

  2. 现象:容器重启 / 升级后,聊天记录、用户账号、上传文件全部丢失。 - 原因:docker run 命令遗漏 -v open-webui:/app/backend/data 数据卷挂载。 - 解决:README 明确 WARNING——必须包含该卷;重建容器时保持同名卷与 WEBUI_SECRET_KEY 不变;更新前先备份数据卷。

  3. 现象:模型列表间歇性清空、聊天偶发报 "Model not found",日志出现 ClientConnectorDNSError;在部分 Windows 主机上启动后所有外部模型请求直接失败。 - 原因:旧版本使用 c-ares 解析器,在部分 Windows 主机上找不到可用 DNS 服务器,Docker 内也可能间歇性无法解析容器名(官方排障文档给出该机理说明)。 - 解决:升级到最新镜像版本;升级后名称解析默认走操作系统解析器,host.docker.internal、Compose extra_hosts、K8s hostAliases 行为恢复正常。 - 依据:https://docs.openwebui.com/troubleshooting/connection-error (Intermittent Name Lookup Failures 一节)。

  4. 现象:pip 安装体积异常庞大,或非 NVIDIA 机器上启动报 CUDA 相关错误。 - 原因:PyPI 默认 torch 包携带 NVIDIA CUDA 运行库;无 NVIDIA GPU 环境不应直接安装默认 torch。 - 解决:虚拟环境内先执行 pip install torch --index-url https://download.pytorch.org/whl/cpu,再 pip install open-webui;AMD GPU 改装 ROCm 版 PyTorch(官方文档指引至 PyTorch 安装页)。 - 依据:https://docs.openwebui.com/getting-started/quick-start/ (No NVIDIA GPU? 一节)。

  5. 现象:首次上传文档时报 Hugging Face SSL 错误 / 嵌入模型下载超时,知识库处理失败。 - 原因:本地默认嵌入模型 sentence-transformers/all-MiniLM-L6-v2 需从 Hugging Face 下载,网络不通或 SSL 中断。 - 解决:按 09.4.1 A-4 设置 HF_ENDPOINT=https://hf-mirror.com/;离线环境设 HF_HUB_OFFLINE=1 并提前预置模型;RAG 引擎也可切换为 ollama / openai / azure_openai(环境变量 RAG_EMBEDDING_ENGINE),把嵌入计算移到已有服务上。 - 依据:https://docs.openwebui.com/troubleshooting/connection-error ;https://docs.openwebui.com/reference/env-configuration (RAG_EMBEDDING_ENGINE、RAG_EMBEDDING_MODEL)。

  6. 现象:docker run 后浏览器打不开,日志报 port is already allocated;或 pip 启动端口冲突。 - 原因:默认 3000(Docker 发布端口)/ 8080(pip、容器内端口)被其他程序占用。 - 解决:Docker 改左侧端口,如 -p 3002:8080;pip 模式 open-webui serve --port 9999。 - 依据:https://docs.openwebui.com/getting-started/quick-start/ (Port already taken 说明)。

09.7 本节来源清单

# URL 用途 验证方式
1 https://github.com/open-webui/open-webui 仓库主页、README(功能、Docker/pip 安装命令、数据卷 WARNING、License 说明) curl -I HTTP 200(2026-10-25 实测)
2 https://raw.githubusercontent.com/open-webui/open-webui/main/README.md README 原始文本(安装命令、镜像标签、离线模式、排障命令) curl -sL 下载成功(18,318 字节),本地通读
3 https://raw.githubusercontent.com/open-webui/open-webui/main/LICENSE 许可原文(Open WebUI License、品牌保留条款) curl -sL 下载成功,本地通读全文
4 https://openwebui.com/ 官方官网 curl -I HTTP 200
5 https://docs.openwebui.com/ 官方文档站首页 curl -I HTTP 200
6 https://docs.openwebui.com/getting-started/quick-start/ Docker/pip 安装、镜像标签、内存实测、WSL 步骤、首管理员创建、端口与排障说明 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
7 https://docs.openwebui.com/reference/env-configuration 环境变量默认值与选项(OLLAMA_BASE_URL、OPENAI_API_BASE_URL、RAG_EMBEDDING_*、RAG_TOP_K 等) curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
8 https://docs.openwebui.com/features/workspace/knowledge 知识库创建、上传、# 引用、Focused/Full Context 模式、混合检索 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
9 https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-ollama Ollama 连接地址、管理面板、模型拉取/删除/创建、超时配置 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
10 https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-llama-cpp llama.cpp llama-server 参数、/v1 连接地址、Provider 选择 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
11 https://docs.openwebui.com/getting-started/quick-start/connect-a-provider/starting-with-openai-compatible OpenAI 兼容连接配置、/models 缺失时手动添加 Model IDs、后端地址说明 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
12 https://docs.openwebui.com/troubleshooting/connection-error Ollama 连接失败、--network=host、DNS 解析故障、HF_ENDPOINT 镜像、CORS 等排障 curl -sL 下载 HTML 并抽取正文通读(HTTP 200)
13 https://docs.openwebui.com/features/authentication-access/rbac/roles/ 首个账号自动成为 Admin、DEFAULT_USER_ROLE、无头创建管理员环境变量 web.fetch 实际打开通读(HTTP 200)
14 https://pypi.org/project/open-webui/ PyPI 最新版本 0.12.4、requires_python PyPI JSON 接口 curl 解析(version=0.12.4,requires_python <3.13.0a1,>=3.11);页面 HTTP 200
15 https://github.com/open-webui/open-webui/releases/tag/v0.12.4 最新 release 版本号与发布时间(2026-10-25 08:07 UTC) curl -sL 解析页面 datetime;页面 HTTP 200
16 https://hub.docker.com/r/openwebui/open-webui Open WebUI 官方 Docker Hub 镜像仓库(ghcr.io 备选源,标签集合见 09.4.1 A-4) curl -I HTTP 200;Docker Hub API 拉取标签列表确认含 0.12.4、0.12.4-cuda 等
17 https://docs.docker.com/desktop/settings/windows/ Docker Desktop Registry 镜像配置入口(通用 Docker 能力,非 Open WebUI 官方指定方案) 仅作为 09.4.1 A-4 通用思路引用;本章未把任何第三方加速器标注为官方推荐
18 https://docs.openwebui.com/assets/images/new-chat-placeholder-be568eb047e004bf0757ff35e34b4289.png 图 09-1 官方界面截图原始文件 curl -sL 下载(148,827 字节),file 核验 PNG 3000×2000;源 URL HTTP 200
19 https://docs.openwebui.com/assets/images/knowledge-list-011c5b77c36082462e8e714d02d3e53b.png 图 09-2 官方知识库界面截图原始文件 curl -sL 下载(128,307 字节),file 核验 PNG 3000×2000;源 URL HTTP 200
20 https://docs.openwebui.com/features/ 功能总览导航页(数据库 / 文件存储 / 向量库分类) curl -I HTTP 200
21 https://download.pytorch.org/whl/cpu PyTorch CPU 版官方安装索引(09.4.2 B-1、09.6 第 4 条命令来源) curl -I HTTP 200
22 https://ollama.com/ Ollama 官方下载站(09.4.1 A-3 模型拉取前置安装) curl -I HTTP 200
23 https://www.docker.com/products/docker-desktop/ Docker Desktop 官方下载页(09.4.1 A-1 依赖安装) curl -I HTTP 200

待验证 / 未写死项说明: - 官方文档未给出 Open WebUI 应用本体的硬性最低内存与磁盘数值;09.3 中内存为官方实测空闲值(已注明非最低要求),磁盘为官方镜像体积实测值。 - ghcr.io 第三方加速器地址不在任何 Open WebUI 官方文档中,本章未编造具体镜像域名,仅给出 Docker 通用 registry-mirrors 配置思路。

10. AnythingLLM —— 本地私有知识库 RAG 应用(All-in-One)

适配场景:Windows 10/11 + WSL2(Ubuntu 24.04)本地部署;RTX 3070 8GB / RTX 4090 24GB 均可使用。AnythingLLM 把 LLM 接入、文档解析、向量检索、工作区、Agent 工具与多用户管理打包在一个应用内,桌面版开箱即用,Docker 版支持多用户与嵌入网页聊天组件。

10.1 项目定位与基本信息

10.2 官方图片

两张图均来自官方渠道:Logo 取自官方 GitHub 仓库 images/wordmark.png;界面图取自官方 README 内嵌演示 GIF(release v1.11.2 资源)第 8 秒帧,用 ffmpeg 转为 PNG。未使用 AI 生成图或非官方截图;已用 file 命令核验为 PNG 且体积大于 20KB。界面图对应 v1.11.2 版本,与当前 v1.18.0 界面细节可能存在差异。

图 10-1 AnythingLLM 官方品牌标识(wordmark)

AnythingLLM 官方横向品牌标识,深色文字与图标

图 10-2 AnythingLLM 桌面端主界面(官方 README 演示 GIF 截帧)

AnythingLLM 主界面:左侧 My Workspace 工作区与线程列表,中间为文档问答内容与 Sources 引用入口,底部输入框带 Tools 工具按钮

  • 来源 URL:https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.11.2/AnythingLLM720p.gif (官方 README 第 45 行内嵌演示 GIF,31,147,746 字节,GIF 1240×720,HTTP 200 已核验)
  • 下载与转码方式: bash curl -L -o anythingllm_demo.gif "https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.11.2/AnythingLLM720p.gif" ffmpeg -y -ss 8 -i anythingllm_demo.gif -frames:v 1 10_anythingllm_ui.png
  • 核验:file 显示 PNG image data, 1240 x 720, 8-bit/color RGBA,体积 118,709 字节(>20KB)。

10.3 环境要求

说明:AnythingLLM 应用本体很轻量(官方裸机 / Docker 指南最低 2GB RAM、建议 10GB 磁盘);内存、显存与磁盘需求主要由你选择的本地 LLM、嵌入模型与文档规模决定。下表区分"应用本体最低要求"与"本地跑模型的推荐配置"。

项目 要求 / 说明 官方依据
操作系统(桌面版) Windows 10+(Home、Professional,x86_64 与 ARM64 均有安装包);官方目标系统为 Windows 11;建议使用 Windows 用户账户安装,Enterprise / Server 版本可能无法正常工作;macOS(Apple Silicon + Intel)、Linux 另有原生构建。 https://docs.anythingllm.com/installation-desktop/windows ;https://anythingllm.com/download
操作系统(Docker / 源码) 任意可运行 Docker 的主机(Windows 上为 Docker Desktop + WSL2 backend);源码方式需 NodeJS v18 与 Yarn。 https://docs.anythingllm.com/installation-docker/overview ;https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/BARE_METAL.md
CPU Docker 最低 2 核;硬性要求:x86 CPU 必须支持 AVX2 指令集(默认向量库 LanceDB 基于 Intel Haswell(2013)基线编译;不支持时容器启动或首次聊天即 Illegal instruction (core dumped),多见于老硬件、部分云实例族、vCPU 屏蔽指令集的 Proxmox / QEMU-KVM 虚拟机)。Docker 镜像提供 amd64 与 arm64 两种架构。 https://docs.anythingllm.com/installation-docker/system-requirements (CPU instruction set requirements 一节);https://docs.anythingllm.com/installation-docker/local-docker (Illegal instruction 一节);https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/docker/HOW_TO_USE_DOCKER.md
GPU 与显存 桌面版内置 LLM(Lemonade + llama.cpp):Windows 上推荐 NVIDIA / AMD(或 NPU)GPU,8–12GB+ VRAM 可获得较好的本地 LLM 体验;GPU 依赖在安装时自动下载,缺失时 UI 会告警并回退 CPU。Docker 官方功能矩阵标注 "Built-in LLM provider" 仅桌面版可用(Docker ❌);仓库 Docker 指南另记载可选 ENABLE_BUILT_IN_LLM=true(NVIDIA CUDA;AMD / Intel Vulkan 仅 Linux),口径随版本可能变化,Docker 建议对接外部 Ollama / 云端 API。仅对接外部 Ollama / 云端 API 时不需要本机 GPU。 https://docs.anythingllm.com/installation-desktop/system-requirements ;https://docs.anythingllm.com/installation-docker/overview (功能矩阵);https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/docker/HOW_TO_USE_DOCKER.md (Built-in LLM engine / GPU acceleration 一节);https://docs.anythingllm.com/installation-desktop/windows
内存(应用本体) Docker / 裸机最低建议 2GB RAM;官方 Docker 系统要求页给出的最低体验配置为 2GB RAM、2 核 CPU、5GB 存储。桌面版官方推荐 16GB RAM、8 核 CPU(本地跑模型场景);使用云端 LLM 时需求显著降低。 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/docker/HOW_TO_USE_DOCKER.md (Minimum Requirements);https://docs.anythingllm.com/installation-docker/system-requirements ;https://docs.anythingllm.com/installation-desktop/system-requirements
磁盘空间 Docker / 裸机官方建议最少 10GB(文档、向量、模型按实际规模增长);Docker 系统要求页最低 5GB;桌面版存储占用随本地模型大小而定。 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/docker/HOW_TO_USE_DOCKER.md ;https://docs.anythingllm.com/installation-docker/system-requirements ;https://docs.anythingllm.com/installation-desktop/system-requirements
依赖(Docker 方式) Docker Engine 或 Docker Desktop(WSL2 backend);无需 Node.js。 https://docs.anythingllm.com/installation-docker/local-docker
依赖(源码方式) NodeJS v18、Yarn;生产模式需分别运行 server 与 collector 两个进程并先构建前端。官方明确:裸机 / 非容器化部署不受核心团队支持,问题不予答复。 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/BARE_METAL.md
默认组件 默认向量库 LanceDB(本地文件,无需额外服务);默认嵌入器为内置 native 引擎,模型 Xenova/all-MiniLM-L6-v2(CPU 本地向量化,ONNX 量化版,输出 384 维向量);默认 Whisper 本地、TTS / STT 为 native。 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/.env.example ;https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/storage/models/README.md ;https://docs.anythingllm.com/features/embedding-models ;https://docs.anythingllm.com/installation-docker/system-requirements

10.4 最详细部署步骤(Windows 与 WSL2 两种视角,精确命令)

三条路径任选:A. 桌面版(Windows 本机,最省事,单用户);B. Docker(WSL2 / Linux 服务器,支持多用户与网页组件);C. 源码(Node 18 + Yarn,供二次开发,官方不提供支持)。

10.4.1 路径 A:Windows 桌面版(推荐个人自用)

A-1 下载安装包
  1. 打开官方下载页 https://anythingllm.com/download ,选择 Download for Windows (x64) 或 Download for Windows (ARM);页面当前版本为 v1.18.0。
  2. 也可直接从 GitHub Releases 下载对应安装包(已核验 HTTP 200): - x64:https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.18.0/AnythingLLMDesktop.exe - ARM64:https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.18.0/AnythingLLMDesktop-Arm64.exe
A-2 安装要点(官方 Windows 文档)
  • 仅为当前用户安装:官方不推荐 "All users" 安装,会导致应用异常且不受支持;安装时选择 Current User only。
  • 安装目录:%LOCALAPPDATA%\Programs\AnythingLLM;用户数据目录:%APPDATA%\anythingllm-desktop(工作区、文档、向量库、聊天记录、下载的模型均在此目录)。
  • 首次启动可能需要 1–2 分钟(内置引擎与 GPU 依赖初始化),后续启动接近秒开。
  • 内置本地 LLM 由 Lemonade + llama.cpp 驱动;NVIDIA / AMD / NPU 的 GPU 依赖在安装过程中自动下载。
  • 静默安装(v1.16.1+,脚本化部署用):

powershell # 静默安装,跳过约 2GB 的会议助手模型下载 .\AnythingLLMDesktop.exe /S # 静默安装并下载会议助手转写模型 .\AnythingLLMDesktop.exe /S /DOWNLOAD_MODEL=yes

静默卸载(保留数据):"$env:LOCALAPPDATA\Programs\AnythingLLM\Uninstall AnythingLLM.exe" /S;加 /DELETE_DATA=yes 会删除整个 %APPDATA%\anythingllm-desktop 目录且不可恢复。 依据:https://docs.anythingllm.com/installation-desktop/windows (Silent / headless installation 一节)。

A-3 启动与验证

双击桌面 "AnythingLLM" 图标启动;桌面版为原生应用,没有独立 Web 后台(后端仅监听 127.0.0.1,浏览器直接访问该端口不会得到完整界面)。无需注册账号、无需邮箱验证、无需 API Key 即可进入单用户界面。

10.4.2 路径 B:Docker 部署(WSL2 Ubuntu 24.04 / Linux 云服务器)

B-1 依赖安装(Windows 视角)
  1. 安装 Docker Desktop for Windows,勾选 WSL2 backend;Settings → Resources → WSL Integration 勾选默认 Ubuntu 24.04 发行版并保存重启。
  2. 建议全程在 WSL2 Ubuntu 终端执行 docker 命令,避免在 PowerShell / CMD 中操作,减少挂载卷路径不一致导致的问题(Docker Desktop + WSL2 通用实践)。
B-2 拉取镜像并启动(官方命令)

说明:官方 HOW_TO_USE_DOCKER.md 原命令带 --rm(容器退出即删除);本章去掉 --rm 并显式 --name anythingllm,便于后续 docker start / stop 管理,功能等价。

Linux / macOS / WSL2(bash):

export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
  --cap-add SYS_ADMIN \
  --name anythingllm \
  -v ${STORAGE_LOCATION}:/app/server/storage \
  -v ${STORAGE_LOCATION}/.env:/app/server/.env \
  -e STORAGE_DIR="/app/server/storage" \
  mintplexlabs/anythingllm:latest

Windows PowerShell(官方 HOW_TO_USE_DOCKER.md Windows 块;本章同样去掉 --rm、加 --name anythingllm,功能等价):

$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"
If(!(Test-Path $env:STORAGE_LOCATION)) { New-Item $env:STORAGE_LOCATION -ItemType Directory }
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) { New-Item "$env:STORAGE_LOCATION\.env" -ItemType File }
docker run -d -p 3001:3001 `
  --cap-add SYS_ADMIN `
  --name anythingllm `
  -v "$env:STORAGE_LOCATION`:/app/server/storage" `
  -v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
  -e STORAGE_DIR="/app/server/storage" `
  mintplexlabs/anythingllm

命令参数对照(官方文档与 server/.env.example):

参数 作用(官方说明)
-p 3001:3001 本机 3001 端口映射到容器内 3001(SERVER_PORT=3001,见 .env.example 第 1 行)。
--cap-add SYS_ADMIN 给内置 Chromium 页面抓取能力所需的 Linux capability;若不做网页抓取,也可改用环境变量 ANYTHINGLLM_CHROMIUM_ARGS="--no-sandbox,--disable-setuid-sandbox" 替代(.env.example 第 537 行注释)。
-v ${STORAGE_LOCATION}:/app/server/storage 必须挂载的数据目录:数据库、文档、向量库、模型缓存全部在此;官方 WARNING:不挂载该卷,容器重启后数据全部丢失。
-v ${STORAGE_LOCATION}/.env:/app/server/.env 把宿主机 .env 挂进容器,便于在宿主机上持久化修改配置。
-e STORAGE_DIR="/app/server/storage" 容器内存储绝对路径(无尾部斜杠)。
mintplexlabs/anythingllm:latest 默认 SQLite 应用数据库;PostgreSQL 变体使用官方 mintplexlabs/anythingllm:pg 镜像(Docker Hub 标签列表已核验存在 pg 标签),通过 DATABASE_URL 连接外部 PostgreSQL。官方 Quickstart 要求该 PostgreSQL 库预先安装 PGVector 扩展(见下方变体命令说明)。

关于 Docker 内置 LLM(口径说明):官方 Docker / 桌面功能矩阵中 "Built-in LLM provider" 为 桌面版 ✅、Docker ❌;仓库 docker/HOW_TO_USE_DOCKER.md 另记载可选环境变量 ENABLE_BUILT_IN_LLM=true(引擎 Lemonade + llama.cpp;NVIDIA 走 CUDA,AMD / Intel 走 Vulkan 且仅 Linux,无 GPU 回退 CPU)。两份官方材料口径随版本可能变化,Docker 场景建议直接对接外部 Ollama 实例或云端 LLM 接口,不依赖内置 LLM。

PostgreSQL 变体(官方 Quickstart pg 镜像命令):按官方 Quickstart 要求,先启动一个运行中的 PostgreSQL 数据库并在该库中安装 PGVector 扩展,再使用 :pg 镜像启动;下面为示例命令,连接串中的主机、账号、密码、库名按实际实例替换(172.17.0.1 为 Linux Docker 访问宿主机的示例地址;完整命令块以官方 Quickstart 页面为准):

export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d -p 3001:3001 \
  --cap-add SYS_ADMIN \
  -v ${STORAGE_LOCATION}:/app/server/storage \
  -v ${STORAGE_LOCATION}/.env:/app/server/.env \
  -e STORAGE_DIR="/app/server/storage" \
  -e DATABASE_URL="postgresql://dbuser:dbpassword@172.17.0.1:5432/dbname" \
  mintplexlabs/anythingllm:pg
B-3 模型 / 依赖下载
  • 本地 LLM(推荐对接本机 Ollama):先在宿主机安装 Ollama 并 ollama pull qwen2.5:7b(示例模型,按显存选择);AnythingLLM 首次启动会自动探测官方列出的 Ollama 地址(见 10.5.2)。
  • 默认嵌入模型:内置 native 引擎使用 Xenova/all-MiniLM-L6-v2 的 ONNX 量化版(源自 Hugging Face,CPU 本地向量化,输出 384 维向量);首次使用时下载到存储目录下的 models/Xenova 子目录并缓存(官方排障文档说明),模型说明见 server/storage/models/README.md。
  • 国内网络说明:官方 README 说明即使关闭遥测,应用仍会访问 cdn.anythingllm.com 从官方镜像 CDN 拉取模型(该 CDN 不做遥测统计,对 VPN 受限地区反而有用);嵌入模型来源为 Hugging Face 体系,若下载失败可改用 Ollama 嵌入引擎(EMBEDDING_ENGINE='ollama' + nomic-embed-text)规避,配置见 10.4.2 B-4 配置表。官方文档未提供第三方镜像站地址,本章不编造。
B-4 关键配置项总表(来源:官方 server/.env.example 与文档站)
配置项 默认值 说明
SERVER_PORT 3001 服务监听端口(容器内)。
JWT_SECRET 示例默认 my-random-string-for-seeding 会话签名密钥,生产环境替换为至少 12 位随机串。
SIG_KEY 示例默认 passphrase 文档签名密钥,至少 32 位随机串。
SIG_SALT 示例默认 salt 文档签名盐值,至少 32 位随机串。
STORAGE_DIR —(生产必填,绝对路径无尾部斜杠) 数据目录,Docker 内固定为 /app/server/storage。
LLM_PROVIDER 空(界面选择持久化后写入) LLM 供应商;可选 ollama、openai、anthropic、lmstudio、generic-openai、gemini、deepseek 等数十种(清单见 .env.example 第 10–203 行)。
OLLAMA_BASE_PATH 示例 http://host.docker.internal:11434 Ollama 服务地址(Docker Windows/Mac);Linux 用 http://172.17.0.1:11434。
OLLAMA_MODEL_PREF 示例 llama2 Ollama 默认模型名。
OLLAMA_MODEL_TOKEN_LIMIT 4096 模型上下文令牌上限。
OLLAMA_AUTH_TOKEN 空 Ollama 挂在认证代理后时填写 Bearer Token(可选)。
OLLAMA_RESPONSE_TIMEOUT 注释:默认 5 分钟;注释示例值 7200000(毫秒) Ollama 响应最长等待毫秒数,超时中断。
EMBEDDING_ENGINE native 嵌入引擎;可选 ollama、openai、azure、cohere、voyageai、generic-openai、lmstudio、localai、litellm、gemini、openrouter、lemonade 等。
EMBEDDING_MODEL_PREF Xenova/all-MiniLM-L6-v2 嵌入模型名;Ollama 嵌入示例 nomic-embed-text:latest。
EMBEDDING_MODEL_MAX_CHUNK_LENGTH 视引擎而定(示例 1000 / 8192 字符) 单段送入嵌入模型的最大字符数。
VECTOR_DB lancedb 向量库;可选 chroma、chromacloud、pinecone、astra、pgvector、weaviate、qdrant、milvus、zilliz。
WHISPER_PROVIDER local 语音转写;可选 openai、generic-openai。
TTS_PROVIDER native 语音合成;可选 openai、elevenlabs、generic-openai、kokoro。
STT_PROVIDER native 服务端语音识别;可选 openai、lemonade、deepgram、generic-openai、groq。
COLLECTOR_PORT 8888 文档解析采集器(collector)监听端口;进程分离部署时须与服务端配置一致。
ENABLE_BUILT_IN_LLM 未设置 仓库 Docker 指南记载的可选开关;官方功能矩阵标注内置 LLM 为桌面版能力,Docker 场景建议对接外部 Ollama / 云端 API(口径见 10.3 GPU 行与 10.4.2 B-2 说明)。
DISABLE_TELEMETRY 未设置(开启收集匿名使用信息) 置 "true" 关闭遥测;也可在应用侧边栏 Privacy 中关闭(README Telemetry & Privacy 一节)。
AGENT_MAX_TOOL_CALLS 10(.env.example 注释示例值) 单轮响应中 Agent 最多链式调用工具次数,防止低端模型无限递归。
AGENT_SKILL_RERANKER_ENABLED 默认开启(Intelligent Tool Selection,官方文档说明) 工具重排序(按提示词只保留最相关工具),每轮对话最高节省约 80% token,代价是每轮额外 100–500ms 重排序开销;AGENT_SKILL_RERANKER_TOP_N 默认保留 15 个;可在 Settings → Agent Skills 面板关闭。
AGENT_AUTO_APPROVED_SKILLS 空 逗号分隔、无需交互确认即可自动调用的技能,如 create-pdf-file,create-word-file。
数据卷(Docker) /app/server/storage + /app/server/.env 必须挂载,否则容器重建后数据库、文档、向量库、配置全部丢失。
B-5 启动与验证
docker logs -f anythingllm     # 观察启动日志,无报错后访问页面

浏览器访问 http://localhost:3001 即进入应用。

10.4.3 路径 C:源码部署(Node 18 + Yarn,二次开发用)

官方警告:该方式不受核心团队支持,部署安全与数据由使用者自负;以下步骤全部来自官方 BARE_METAL.md。

C-1 依赖安装(WSL2 Ubuntu 24.04)

官方 BARE_METAL.md 硬性要求 NodeJS v18 与 Yarn(未给出具体安装命令;Ubuntu 24.04 仓库默认 Node 版本并非 v18,需自行通过 nvm / NodeSource 等方式安装 v18,再安装 Yarn):

# 前置:本机已具备 NodeJS v18(node --version 应为 v18.x)与 Yarn
yarn --version

说明:以下源码步骤全部来自官方 BARE_METAL.md;官方同时声明裸机 / 非容器化部署不受核心团队支持。

C-2 拉取源码与初始化
git clone git@github.com:Mintplex-Labs/anything-llm.git
cd anything-llm
yarn setup                                   # 安装生产与调试全部依赖
cp server/.env.example server/.env          # 生成基础配置文件

编辑 server/.env,至少设置:

STORAGE_DIR="/your/absolute/path/to/server/storage"

编辑 frontend/.env,把 VITE_API_BASE 设为 /api(非 localhost 地址 / Docker / 源码生产模式使用):

VITE_API_BASE='/api'
C-3 构建前端、迁移数据库、启动进程
# 1. 构建前端
cd frontend && yarn build
# 2. 把构建产物交给 server 提供静态服务
cp -R frontend/dist server/public
# 3. 生成 Prisma 客户端并迁移数据库
cd server
npx prisma generate --schema=./prisma/schema.prisma
npx prisma migrate deploy --schema=./prisma/schema.prisma
# 4. 分别启动 server 与 collector 两个生产进程
cd server && NODE_ENV=production node index.js &
cd collector && NODE_ENV=production node index.js &
C-4 验证

浏览器访问 http://localhost:3001。更新流程:git pull origin master → 重复 C-3 构建、迁移、重启步骤;重启前先 pkill node,避免多进程冲突(官方 BARE_METAL.md 更新说明)。

10.5 使用方法

10.5.1 启动方式速查

部署方式 启动 / 访问 账号模式
Windows 桌面版 双击桌面图标,原生窗口运行;无独立 Web 后台 单用户,无需注册
Docker(SQLite) docker start anythingllm,浏览器 http://localhost:3001 默认单用户;可在设置中开启多用户并创建首个管理员
Docker(pg) 同上,mintplexlabs/anythingllm:pg 变体通过 DATABASE_URL 连接外部 PostgreSQL;官方 Quickstart 要求该库预装 PGVector 扩展 同上
源码 server 与 collector 双进程,http://localhost:3001 同上

10.5.2 界面操作步骤

  1. 进入实例 - 桌面版:直接进入,无登录页。 - Docker 单用户模式:可在设置中打开 "Password Protect Instance" 设置实例密码;知道密码即可使用全部功能、查看所有会话。 - Docker 多用户模式:在设置中打开 "Enable multi-user mode",填写用户名密码创建首个管理员账号(Admin,拥有全系统权限);此后登出并以该账号登录。注意:一旦切换到多用户模式,无法回退到单用户模式。角色分三级:Admin(全量权限)、Manager(可查看所有工作区并管理属性,但不能改 LLM / 嵌入器 / 向量库设置)、Default(只能被加入指定工作区聊天)。 - 依据:https://docs.anythingllm.com/features/security-and-access 。
  2. 连接 LLM 供应商 - 点击左下角 Settings(齿轮)→ AI Providers → LLM。 - 本地 Ollama:桌面版与 Docker 版都会自动探测以下地址,探测不到时在界面手动填写:
    • http://127.0.0.1:11434(桌面版 / 本机进程)
    • http://host.docker.internal:11434(Docker on Windows / macOS)
    • http://172.17.0.1:11434(Docker on Linux)
    • 也可选择 OpenAI、Anthropic、Gemini、DeepSeek、Generic OpenAI、LM Studio、Lemonade、Foundry Local 等供应商,填写 Base URL / API Key / 模型名后保存;系统默认模型之外,单个工作区可在工作区设置里另选模型。
    • 验证 Ollama 是否在跑:浏览器先打开 http://127.0.0.1:11434,应看到 "Ollama is running";ollama run <模型名> 不会启动 API 服务,需保证 ollama serve 在运行。
    • 依据:https://docs.anythingllm.com/ollama-connection-troubleshooting ;https://docs.anythingllm.com/features/language-models 。
  3. 配置嵌入器与向量库 - Settings → AI Providers → Embedder:默认 Built-in(native)Xenova/all-MiniLM-L6-v2,CPU 本地向量化;文档量大时可切换 Ollama / OpenAI / Cohere 等外部嵌入器。 - Settings → AI Providers → Vector Database:默认 LanceDB(本地文件);可切换 Chroma、pgvector、Qdrant、Milvus 等。 - 依据:https://docs.anythingllm.com/features/embedding-models ;https://docs.anythingllm.com/features/vector-databases ;.env.example 第 206–351 行。
  4. 创建工作区与上传文档 - 左侧工作区栏点击 + New Workspace,命名(如 Blog-KB)并创建。 - 附加文档(Attach,全文注入):把文件拖进聊天窗口,或点输入框旁 +;文档作用域为当前工作区 + 当前线程,其他线程不可见;默认把全文插入上下文,上下文窗口不足时会弹出三选一:Cancel(移除文档)/ Continue Anyway(继续全文,超出部分会被自动裁剪,回答易失真,官方不推荐)/ Embed(转入 RAG 嵌入工作区)。 - 嵌入文档(Embed / RAG,推荐建知识库):上传后在文档管理中点 "Move into workspace";文档被切分为分片 → 嵌入模型向量化 → 存入向量库;嵌入后对工作区所有线程可用,多用户模式下对工作区内所有用户可用。 - 支持多种文档类型(README 原文:PDF、TXT、DOCX 等 Multiple document type support);内置网页 URL 抓取能力;各格式实际解析能力以采集器(collector)实现为准。 - 依据:https://docs.anythingllm.com/chatting-with-documents/introduction ;https://docs.anythingllm.com/chatting-with-documents/rag-in-anythingllm 。
  5. 调优 RAG 参数(工作区齿轮图标) - Search Preference (Reranking):仅 LanceDB 可用;默认搜索最相关分片;"Accuracy Optimized" 先取回更多分片再重排序,效果更好但慢约 100–500ms;重排序模型首次使用时下载一次。 - Max Context Snippets:送入 LLM 的相关分片数量;多数模型建议保持 4–6,大上下文模型可调高,过多噪声会误导回答。 - Document similarity threshold:过滤低相关分片;默认最低分数 20%;选项 No Restriction / Low(≥0.25)/ Medium(≥0.50)/ High(≥0.75)。出现幻觉或答非所问时先调到 No Restriction 排查。 - Document Pinning:已嵌入文档可固定为全文注入上下文,适合必须全文理解的关键文档;固定文档不参与 RAG 检索,避免重复注入。 - 依据:https://docs.anythingllm.com/chatting-with-documents/introduction (RAG settings 一节)。
  6. Agent 模式与工具 - 在输入框输入 @agent 切换到 Agent 模式,输入 exit 退出;新版工作区默认聊天模式为 Agent(v1.11.1 起),另有 Chat(普通对话)与 Query(单次问答)模式可切换。 - 内置能力(官方 ai-agents 文档描述):检索工作区知识库、抓取网站与联网浏览、列出与总结指定文档、生成图表、把结果文件保存到本地桌面,以及工作区长期记忆;各项能力在下方 Agent Skills 面板中逐项开关。 - Settings → Agent Skills 面板可逐项开关(官方下载页与文档截图中的内置技能):RAG & long-term memory、View & summarize documents、Scrape websites、File System Access、Document Creation、Generate charts、Web Search、SQL Connector;App Integrations 子项:Apple Notes、Gmail、Google Calendar、Outlook。面板中另有 Generate & save files to browser 等内置动作;支持 NodeJS 自定义 Skill 与 MCP 服务器接入(@agent 会话可自动使用已配置的技能、工具与 MCP)。 - 依据:https://anythingllm.com/download (官方下载页 Agent Skills 面板截图);https://docs.anythingllm.com/agent/custom/introduction ;https://docs.anythingllm.com/features/ai-agents ;https://docs.anythingllm.com/features/chat-modes ;https://docs.anythingllm.com/agent/intelligent-tool-selection ;https://docs.anythingllm.com/mcp-compatibility/overview (MCP 服务器接入)。

10.5.3 常用参数说明表

位置 参数 / 选项 说明
Workspace 设置 System Prompt 工作区系统提示词,全局默认提示词之外的补充。
Workspace 设置 Chat Mode Agent / Chat / Query 三种模式。
Workspace 设置 Search Preference 默认(直接检索最相关分片)/ Accuracy Optimized(先取回更多分片再重排序,仅 LanceDB)。
Workspace 设置 Max Context Snippets 送入模型的分片数,建议 4–6。
Workspace 设置 Similarity Threshold 分片相关度下限,默认 20%。
Workspace 设置 Document Pinning 关键文档全文固定注入上下文。
Settings → AI Providers → LLM Provider / Base URL / API Key / Model / Token Limit 系统级默认模型配置;工作区可覆盖。
Settings → AI Providers → Embedder Engine / Model / Max Chunk Length 嵌入模型与分片字符上限。
Agent Skills 工具逐项开关 控制 Agent 可调用的内置能力范围。
Agent @agent / exit 进入 / 退出 Agent 模式。
环境变量 AGENT_MAX_TOOL_CALLS 单轮最大工具链式调用次数。
环境变量 AGENT_AUTO_APPROVED_SKILLS 免确认自动执行的技能白名单。
环境变量 MEMORY_EXTRACTION_INTERVAL / MEMORY_IDLE_THRESHOLD_MS 记忆抽取后台任务周期与空闲阈值;工作区记忆上限 20 条,全局记忆上限 5 条。

10.5.4 端到端示例:把博客 Markdown / PDF 文章做成私有问答知识库

前置条件:Docker 实例运行于 http://localhost:3001 ;本机 Ollama 已 ollama pull qwen2.5:7b(按 3070 8GB 显存选合适量化版本;4090 24GB 可换更大模型)。

  1. 浏览器打开 http://localhost:3001 ;若开启多用户,用管理员账号登录。
  2. Settings → AI Providers → LLM 选 Ollama,地址 http://host.docker.internal:11434(Windows Docker)或 http://172.17.0.1:11434(Linux Docker),模型选 qwen2.5:7b,保存。
  3. 新建工作区 Blog-KB;点上传入口,把博客导出的 .md / .pdf 文章拖入;在文档列表中逐个 Move into workspace 完成嵌入(等待分片向量化完成)。
  4. 回到工作区对话,确认聊天模式为 Agent 或 Chat;先问一句 "请总结本工作区文档的主题分布" 验证知识库已挂载。
  5. 提问示例:"根据已上传的博客文章,列出 WSL2 下部署本地大模型的步骤要点,并注明引用了哪几篇文档。"
  6. 核验回答下方 Sources 引用片段;若模型答不到文档内容:先把 Similarity Threshold 调到 No Restriction 复测,再检查嵌入器是否为 Built-in 或 Ollama、文档是否已成功嵌入工作区、分片数是否被限制过低。

10.6 常见坑(现象 + 原因 + 解决)

  1. 现象:Docker 版 AnythingLLM 选 Ollama 后模型列表为空,对话报连接失败 / ECONNREFUSED。 - 原因:容器内 localhost / 127.0.0.1 / 0.0.0.0 指向容器自身,不是宿主机;这是 100% 出现率的 Docker 连接错误。 - 解决:Windows / macOS Docker 改用 http://host.docker.internal:11434;Linux Docker 改用 http://172.17.0.1:11434;远程 Ollama 直接填对方机器可达 IP 并放开防火墙。先在宿主机浏览器访问 http://127.0.0.1:11434 确认 Ollama 服务在运行。 - 依据:https://docs.anythingllm.com/ollama-connection-troubleshooting ;https://docs.anythingllm.com/installation-docker/localhost 。

  2. 现象:容器重启 / 升级后,工作区、文档、模型配置全部消失。 - 原因:docker run 遗漏 -v ${STORAGE_LOCATION}:/app/server/storage 数据卷挂载。 - 解决:严格使用 10.4.2 B-2 官方命令的两条 -v(存储目录 + .env);官方文档明确 WARNING:不挂载该卷,数据在容器重启时即丢失。 - 依据:https://docs.anythingllm.com/installation-docker/local-docker (Pull / Run 一节 WARNING)。

  3. 现象:容器启动后立即退出,日志结尾 Error: SQLite database error unable to open database file: ../storage/anythingllm.db。 - 原因:存储目录对容器内非特权用户(UID/GID 1000)不可写;常见于把 STORAGE_LOCATION 放在 /mnt、/data、/srv、/opt 等 root 拥有的顶层目录下。 - 解决:启动前把目录属主交给 1000:sudo chown -R 1000:1000 ${STORAGE_LOCATION},删除死亡容器后重新执行官方启动命令。不要用 chmod -R 777——旧 issue 里该做法会让数据库、文档与含 API Key 的 .env 对本机所有用户可读可写;源码自建镜像且改过 UID/GID 时,以 .env 中的实际数值为准。 - 依据:https://docs.anythingllm.com/installation-docker/local-docker (unable to open database file 一节)。

  4. 现象:容器启动或首次聊天时退出,日志结尾 /usr/local/bin/docker-entrypoint.sh: line 7: 115 Illegal instruction (core dumped) node /app/server/index.js。 - 原因:CPU 不支持 AVX2 指令集;默认向量库 LanceDB 基于 Intel Haswell(2013)基线编译,加载时直接杀进程。官方说明常见于老硬件、部分云实例族,以及 Proxmox / QEMU-KVM 等虚拟机中 hypervisor 把 AVX2 对客户机隐藏。 - 解决:① 在宿主 / 虚拟机内确认 CPU 是否暴露 AVX2(通用排查方式:lscpu 或 cat /proc/cpuinfo | grep flags | grep avx2;虚拟机需在 hypervisor 层把 CPU 直通为宿主类型后重启复测,具体选项随虚拟化平台不同);② 物理 CPU 确实不支持 AVX2 时,按官方建议改用其他受支持的向量数据库(在 .env 中将 VECTOR_DB 切到 Chroma / pgvector / Qdrant 等,LanceDB 不被选中即不会被加载);或换用支持 AVX2 的主机。 - 依据:https://docs.anythingllm.com/installation-docker/local-docker (Container exits with Illegal instruction 一节);https://docs.anythingllm.com/installation-docker/system-requirements (CPU instruction set requirements 一节);https://docs.anythingllm.com/fetch-failed-on-upload (Your CPU is not supported 一节)。

  5. 现象:docker run 后浏览器打不开页面,日志报 port is already allocated / 3001 被占用。 - 原因:本机 3001 端口已被其他程序(如其他容器、本地服务)占用(Docker 通用排障,非 AnythingLLM 专有问题)。 - 解决:修改发布端口左侧数字,如 -p 3002:3001,浏览器访问 http://localhost:3002;容器内 SERVER_PORT 保持 3001 不变。

  6. 现象:Windows 安装时报 "AnythingLLM cannot be closed",无法继续安装。 - 原因:① 旧版本仍在后台托盘运行(v1.11.0 起关闭窗口最小化到系统托盘);② 历史上曾按 "All users" 安装,残留需要管理员权限卸载的程序。 - 解决:托盘图标右键 "Quit AnythingLLM" 后点 Retry;第二种情况:右键桌面图标 → Open File Location → 运行 Uninstall AnythingLLM.exe(必要时以管理员身份运行),卸载后仅按 Current User 重装;上述操作不会删除数据与设置。 - 依据:https://docs.anythingllm.com/installation-desktop/windows (Troubleshooting 一节)。

  7. 现象:桌面版安装 / 升级时 "Failed to install/extract GPU support from CDN",内置模型只能跑 CPU。 - 原因:旧内置 Ollama 引擎从官方 CDN 拉取 GPU 支持文件时被网络 / 防火墙拦截;新版桌面内置引擎已切换为 Lemonade + llama.cpp,该旧问题仅针对遗留 Ollama 引擎。 - 解决:检查网络与防火墙后重启安装器;官方不建议手工修复该引擎(升级易破坏);推荐做法是单独安装 Ollama,再由 AnythingLLM 自动探测并对接外部 Ollama 实例,版本间更稳定。 - 依据:https://docs.anythingllm.com/installation-desktop/windows (Failed to install/extract GPU support from CDN 一节)。

  8. 补充说明(上传文件大小):官方 server/.env.example 未提供独立的单文件上传大小限制环境变量;采集器(collector)源码 collector/index.js 中 FILE_LIMIT = "3GB" 为请求体上限(bodyParser.text/json/urlencoded 均按此值限制)。实际可用的单文件上限还受模型上下文窗口、分片策略与浏览器上传链路约束;超大文档建议先在本地拆分或转成纯文本再上传。 - 依据:https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/.env.example ;https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/collector/index.js (第 21、37–40 行)。

10.7 本节来源清单

# URL 用途 验证方式
1 https://github.com/Mintplex-Labs/anything-llm 仓库主页、README(功能清单、MIT 徽章、遥测说明、提供商清单) curl -I HTTP 200(2026-10-25 实测)
2 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/README.md README 原始文本(定位、功能、提供商、向量库、许可声明) curl -sL 下载成功,本地通读
3 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/LICENSE MIT 许可原文(Copyright Mintplex Labs Inc.) curl -sL 下载成功,本地通读
4 https://anythingllm.com/ 官方官网 curl -I HTTP 200
5 https://anythingllm.com/download 桌面版下载页(v1.18.0,Windows x64 / ARM 入口) curl -I HTTP 200;web.fetch 实际打开核验版本号与按钮文案
6 https://docs.anythingllm.com/ 官方文档站首页 web.fetch 打开成功(Cloudflare 拦截 curl,故文档类页面均以 web.fetch 为准)
7 https://docs.anythingllm.com/installation-desktop/overview 桌面版定位、后端仅监听 127.0.0.1、功能矩阵(桌面 vs Docker) web.fetch 实际打开通读
8 https://docs.anythingllm.com/installation-desktop/system-requirements 桌面推荐配置:16GB RAM、8 核 CPU、Windows GPU 8–12GB+ VRAM、存储随模型而定 web.fetch 实际打开通读
9 https://docs.anythingllm.com/installation-desktop/windows Windows 10+ x64/ARM64、仅当前用户安装、数据 / 安装目录、内置 Lemonade+llama.cpp、静默安装参数、托盘退出、CDN GPU 故障排障 web.fetch 实际打开通读
10 https://docs.anythingllm.com/installation-docker/overview Docker 定位、桌面版 / Docker 功能差异矩阵 web.fetch 实际打开通读
11 https://docs.anythingllm.com/installation-docker/local-docker Docker 拉取与启动命令、数据卷 WARNING、UID/GID 1000、AVX2 崩溃与数据库文件无法打开排障 web.fetch 实际打开通读
12 https://docs.anythingllm.com/installation-docker/quickstart pg 镜像启动命令说明(官方要求先准备运行中的 PostgreSQL 并安装 PGVector 扩展)、UID/GID 1000 默认值说明 web.fetch 实际打开通读
13 https://docs.anythingllm.com/installation-docker/system-requirements 最低 2GB RAM / 2 核 / 5GB、CPU 指令集(AVX2)硬性要求一节、默认嵌入器 CPU 本地向量化 web.fetch 实际打开通读
14 https://docs.anythingllm.com/installation-docker/localhost Docker 内 localhost/127.0.0.1/0.0.0.0 不可用;Win/Mac 用 host.docker.internal、Linux 用 172.17.0.1;PostgreSQL / Ollama / Chroma / LM Studio 示例 web.fetch 实际打开通读
15 https://docs.anythingllm.com/ollama-connection-troubleshooting Ollama 自动探测地址清单、127.0.0.1:11434 存活检查、Docker 地址替换规则、远程 Ollama 说明 web.fetch 实际打开通读
16 https://docs.anythingllm.com/features/language-models 本地 / 云端 LLM 供应商清单(Built-in、Ollama、LM Studio、OpenAI、Anthropic、DeepSeek、Generic OpenAI 等) web.fetch 实际打开通读
17 https://docs.anythingllm.com/features/embedding-models 本地 / 云端嵌入器供应商清单,默认 Built-in web.fetch 实际打开通读
18 https://docs.anythingllm.com/features/vector-databases 向量数据库支持矩阵与默认 LanceDB 说明 web.fetch 实际打开通读
19 https://docs.anythingllm.com/features/ai-agents @agent 进入 / exit 退出、Agent 工具能力描述(抓取网站、列出与总结文档、联网搜索、生成图表、保存文件到桌面、工作区记忆) web.fetch 实际打开通读
20 https://docs.anythingllm.com/features/security-and-access 单用户 / 多用户模式、首个管理员创建、Admin/Manager/Default 角色、多用户不可回退、实例密码保护(Docker 限定) web.fetch 实际打开通读
21 https://docs.anythingllm.com/features/chat-modes Agent / Chat / Query 聊天模式说明 web.fetch 实际打开通读
22 https://docs.anythingllm.com/features/memories 工作区记忆 20 条 / 全局记忆 5 条、记忆注入规则、MEMORY_EXTRACTION_INTERVAL / MEMORY_IDLE_THRESHOLD_MS web.fetch 实际打开通读
23 https://docs.anythingllm.com/chatting-with-documents/introduction 附加 vs 嵌入、上下文溢出三选一、RAG 设置(重排序、Max Context Snippets、Similarity Threshold 默认 20%、Document Pinning) web.fetch 实际打开通读(页面标注适用 1.8.5+)
24 https://docs.anythingllm.com/chatting-with-documents/rag-in-anythingllm RAG 工作流:上传→移入工作区→分片→嵌入→向量库→检索 4–6 分片→注入 System message(页面标注为 legacy 说明) web.fetch 实际打开通读
25 https://docs.anythingllm.com/agent/custom/introduction 自定义 Agent Skill(NodeJS)、Agent Skills 设置面板与内置能力开关清单 web.fetch 实际打开通读
26 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/docker/HOW_TO_USE_DOCKER.md 官方 Docker 部署指南:最低 2GB RAM / 10GB 磁盘、Windows PowerShell 启动命令、compose 示例、UID/GID、内置 LLM 引擎(Lemonade + llama.cpp)与 GPU 后端矩阵(NVIDIA CUDA / AMD-Intel Vulkan Linux) curl -sL 下载成功,本地通读
27 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/BARE_METAL.md 源码部署:NodeJS v18、Yarn、yarn setup、前端构建、Prisma 迁移、server + collector 双进程;官方不支持裸机部署声明 curl -sL 下载成功,本地通读全文
28 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/.env.example 环境变量默认值与选项(SERVER_PORT、VECTOR_DB=lancedb、EMBEDDING_ENGINE=native、嵌入模型、Ollama 配置、Whisper/TTS/STT、collector 端口、Agent 开关等) curl -sL 下载成功(598 行),本地通读
29 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/collector/index.js 采集器 FILE_LIMIT="3GB" 请求体上限源码依据 curl -sL 下载成功,定位第 21、37–40 行
30 https://github.com/Mintplex-Labs/anything-llm/releases/tag/v1.18.0 最新 release 版本号与发布时间(2026-10-13 16:15 UTC) curl -sL 解析页面 datetime;页面 HTTP 200
31 https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.18.0/AnythingLLMDesktop.exe Windows x64 安装包直链 curl -I HTTP 200
32 https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.18.0/AnythingLLMDesktop-Arm64.exe Windows ARM64 安装包直链 curl -I HTTP 200
33 https://hub.docker.com/r/mintplexlabs/anythingllm 官方 Docker Hub 镜像仓库 curl -I HTTP 200;Hub API 核验 latest 标签更新于 2026-10-23
34 https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 默认嵌入模型对应的 sentence-transformers 原始模型(RAG 文档引用链接) curl -I HTTP 200
35 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/images/wordmark.png 图 10-1 官方 Logo 原始文件 curl -sL 下载(21,380 字节),file 核验 PNG 800×200;源 URL HTTP 200
36 https://github.com/Mintplex-Labs/anything-llm/releases/download/v1.11.2/AnythingLLM720p.gif 图 10-2 官方 README 演示 GIF 原始资源(31,147,746 字节,1240×720) curl -sL 下载成功(HTTP 200);ffmpeg 取第 8 秒帧转为 PNG,file 核验 118,709 字节 PNG 1240×720
37 https://raw.githubusercontent.com/Mintplex-Labs/anything-llm/master/server/storage/models/README.md 内置 native 嵌入器 Xenova/all-MiniLM-L6-v2(ONNX 量化版、384 维向量)、内置模型存储目录说明 curl -sL 下载成功,本地通读
38 https://docs.anythingllm.com/agent/intelligent-tool-selection Intelligent Tool Selection(默认开启、最高节省约 80% token、每轮 100–500ms 重排序开销、AGENT_SKILL_RERANKER_TOP_N 取前 N 个工具) web.fetch 实际打开通读
39 https://docs.anythingllm.com/fetch-failed-on-upload 嵌入失败排障:默认嵌入模型需联网下载、CPU 不支持 AVX2 时改用其他向量库、Windows VC++ 运行库 web.fetch 实际打开通读
40 https://docs.anythingllm.com/mcp-compatibility/overview MCP 服务器接入:anythingllm_mcp_servers.json 配置、StdIO / SSE / Streamable 传输、MCP 管理 UI web.fetch 实际打开通读

待验证 / 未写死项说明: - 官方文档未给出容器内单文件上传的独立大小限制环境变量;10.6 第 8 条已明确标注该事实与源码请求体上限 3GB 的区别。 - 桌面版默认内置模型清单、版本随发布迭代;本章仅引用官方文档确认的引擎组合(Lemonade + llama.cpp),未罗列具体模型版本号。 - https://docs.anythingllm.com 对命令行 curl 返回 Cloudflare 403,文档类条目均通过 web.fetch 实际打开核验;GitHub 与官网类条目通过 curl 状态码与原文下载核验。

评论交流

文章目录