🚀进阶云计算部署QAnything

QAnything 腾讯云部署指南:国产知识库问答实战

QAnything 是网易有道开源的企业级本地知识库问答系统,最大特点是自研的 BCEmbedding 中英双语与跨语言检索能力,配合 BM25 + 向量的混合检索,在中文场景下召回率表现突出,且支持全离线私有化部署。本文手把手教你在腾讯云上部署 QAnything:从 20GB 内存的门槛讲起,到 docker compose 一键启动、8777 端口访问、本地大模型接入、知识库构建与混合检索调优、API 对接,以及 18 条从容器起不来、模型下载失败到检索不准的真实故障排查。跟着做即可完成。

教程团队
2026-10-19
1 个步骤

前置条件

  • 1已注册腾讯云账号
  • 2一台腾讯云服务器:**内存 ≥ 20GB,推荐 8C32G**(低于此配置难以稳定运行)
  • 3服务器已安装 Docker 20.10.5+ 与 Docker Compose v2.23.3+
  • 4已安装 git-lfs(拉取模型需要)

读完想动手?新用户首单 8 折上云

服务器 + 大模型 API + 对象存储,新用户首购享 20% 补贴

领取

QAnything 腾讯云部署完整指南

QAnything 是网易有道开源的企业级本地知识库问答系统。它在中文场景有个别人不好抄的优势:自研的 BCEmbedding——中英双语、跨语言检索的准确率是官方主打的卖点,再配合 BM25 + 向量的混合检索,召回率比纯向量方案高一档。

另外一个关键特性:支持全离线私有化部署,数据和推理全在本地,适合对数据出境有要求的企业。

代价是门槛不低。这篇先把门槛讲清楚,再带你一步步部署。

第一步:认清硬件门槛

官方文档标注的 Linux 环境要求:

项目最低要求说明
系统Linux(x86)另有 Mac / Windows WSL 方案
NVIDIA GPU 显存≥ 4GB推荐 RTX 3090;驱动 ≥ 525.105.17
内存≥ 20GB硬门槛,低于此难以稳定运行
Docker≥ 20.10.5
Docker Compose≥ v2.23.3
git-lfs必需拉模型权重用

警告

⚠️ 两个容易踩的点:内存 20GB 是实测门槛,不是保守建议;git-lfs 必须先装,否则模型文件拉下来是一堆指针文件,启动必然失败。

机型对照

场景推荐配置说明
功能验证8C32G(CPU,纯 Python 版)官方不建议生产用
小团队生产8C32G + GPU(T4 / 3090 级)推荐起步
部门级16C64G + 24GB 显存文档量大、并发高
全离线私有化上述配置 + 本地大模型需额外跑 Ollama

如果你现在只有 CPU 机器且内存不到 20GB,直接改用 MaxKB 腾讯云部署教程,别硬撑。

前往 腾讯云轻量应用服务器 选购页选大内存机型;需要 GPU 就在 腾讯云 GPU 机型页面 查看库存。

第二步:环境准备

2.1 安装 git-lfs(必做)

bash
1sudo apt-get update
2sudo apt-get install -y git-lfs
3git lfs install

验证:

bash
1git lfs version

警告

⚠️ 这一步漏掉的话,后面 clone 下来的模型权重只有几十字节的指针文件,服务启动时报权重加载失败,排查起来很费劲。

2.2 安装 Docker

bash
1sudo apt-get install -y ca-certificates curl gnupg lsb-release
2
3sudo install -m 0755 -d /etc/apt/keyrings
4curl -fsSL https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg \
5  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
6sudo chmod a+r /etc/apt/keyrings/docker.gpg
7
8echo \
9  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
10  https://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu \
11  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
12
13sudo apt-get update
14sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
15
16sudo usermod -aG docker $USER
17newgrp docker

核对版本:

bash
1docker --version          # 需 >= 20.10.5
2docker compose version    # 需 >= v2.23.3

2.3 配置镜像加速

腾讯云控制台「容器镜像服务 → 镜像加速器」里有专属地址,形如 https://xxxxxx.mirror.swr.myqcloud.com:

bash
1sudo mkdir -p /etc/docker
2sudo tee /etc/docker/daemon.json <<'EOF'
3{
4  "registry-mirrors": [
5    "https://你的专属地址.mirror.swr.myqcloud.com"
6  ]
7}
8EOF
9sudo systemctl daemon-reload
10sudo systemctl restart docker

2.4 检查资源

bash
1free -h     # 确认内存 >= 20GB
2df -h /     # 预留 >= 80GB(镜像 + 模型权重)
3nvidia-smi  # GPU 方案确认显卡可见

第三步:部署 QAnything

3.1 克隆仓库

bash
1cd /opt
2git clone https://github.com/netease-youdao/QAnything.git
3cd QAnything

警告

⚠️ 如果 clone 后发现模型文件只有几十字节,说明 git-lfs 没装或没生效。回第二步装好,然后重新 clone(或执行 git lfs pull 补拉)。

3.2 启动服务

Linux 用对应的 compose 文件:

bash
1docker compose -f docker-compose-linux.yaml up -d

首次启动要拉多个镜像(含 milvus、mysql、minio、etcd 与业务服务),需要十几分钟,取决于带宽。

想看实时日志就用前台方式(调试时推荐):

bash
1docker compose -f docker-compose-linux.yaml up

3.3 确认启动完成

看到这条日志才算就绪:

qanything backend service is ready!

查看日志:

bash
1# 后台方式看日志
2docker compose -f docker-compose-linux.yaml logs -f
3
4# 或看项目日志文件
5tail -f logs/debug_logs/sanic_api.log

警告

⚠️ 官方说明启动约需 30 秒,但首次要拉镜像和下模型,实际远不止。别一看到没日志就以为失败了。

3.4 访问

浏览器打开:

http://服务器IP:8777/qanything/

注意路径末尾的 /qanything/ 不能少,直接访问 :8777 或 :8777/qanything 会打不开。

API 地址与前端相同:

http://服务器IP:8777/qanything/

3.5 关闭服务

bash
1docker compose -f docker-compose-linux.yaml down

警告

⚠️ 不要加 -v,那会删除数据卷,知识库内容全没。

第四步:接入模型

4.1 用云端 API(最快)

在界面里配置对应厂商的 API Key 即可。适合先跑通流程。

4.2 接本地 Ollama(全离线关键一步)

如果你已经按 GLM 腾讯云部署教程 或 InternLM 腾讯云部署教程 在服务器上跑起了 Ollama,可以把它接进来,实现数据完全不出网。

核心思路:Ollama 提供 OpenAI 兼容接口,把它当成一个自定义的 OpenAI 服务填进配置。

bash
1# 确认 Ollama 可访问
2curl http://127.0.0.1:11434/v1/models

警告

⚠️ QAnything 跑在 Docker 里,localhost 指容器自己。访问宿主机上的 Ollama 要用 host.docker.internal,并确保 compose 里有对应的 extra_hosts(- "host.docker.internal:host-gateway")。具体配置字段名以当前版本的 scripts/ 与 compose 文件为准,改动后重启服务生效。

4.3 关于 embedding 与 rerank

QAnything 自带 BCEmbedding(有道自研的 embedding + rerank),这是它中文检索效果好的根本原因。默认会随服务一起加载本地模型,通常不需要你额外配置。

如果你想单独使用 BCEmbedding(不含问答系统),官方也提供了独立的使用方式。

4.4 模型权重下载失败怎么办

自动下载失败时,手动从国内源拉:

  • ModelScope:https://modelscope.cn/models/netease-youdao/QAnything
  • 官方还列出了 wisemodel 等备用地址
bash
1pip install modelscope
2python -c "
3from modelscope import snapshot_download
4snapshot_download('netease-youdao/QAnything', cache_dir='/data/qanything-models')
5"

下载完按项目要求的目录结构摆放,再重启服务。

第五步:构建知识库

5.1 新建知识库

界面里「新建知识库」,填名称与描述。支持的知识库类型按界面提示选择(通用问答 / FAQ 等)。

5.2 上传文档

支持的格式很全:doc、ppt、xls、pdf、docx、pptx、xlsx、txt、图片 等,其中对 docx / pptx / pdf 做了特别优化:

  • 能解析出表格和图片
  • 保留多级标题的层级结构

这个特性很重要——很多知识库工具把文档切成碎块,标题层级丢了,问答时上下文就断了。QAnything 会按层级标题 + 语义切分,保证每个切片是完整的语义单元。

5.3 混合检索怎么用起来

Docker 版默认支持 BM25 + embedding 混合检索(纯 Python 版不支持,这也是官方建议生产用 Docker 的原因)。

混合检索的价值:

  • BM25 擅长精确关键词匹配(人名、型号、编号)
  • embedding 擅长语义相近匹配(同义表述)

两者结合,召回率明显高于纯向量方案。中文场景尤其明显。

如果发现检索不准,优先检查:

  1. 文档是否解析成功(看上传进度与状态)
  2. 提问词是否过于口语化或与文档用词差异大
  3. 是否被切分打断(看召回片段)

5.4 验收:问一个只有文档才知道的问题

别一上传完就上线。问一个文档里明确写了、但通用模型答不上来的问题,检查:

  • 答案是否正确
  • 是否给出了引用来源
  • 引用片段是否真的来自你的文档

答案不带引用 = 检索没命中,必须回去排查,不要直接交付给用户。

第六步:API 对接

6.1 调用示例

bash
1curl -X POST http://服务器IP:8777/qanything/ \
2  -H "Content-Type: application/json" \
3  -d '{
4    "question": "年假怎么申请",
5    "kb_id": "你的知识库ID"
6  }'

详细的接口字段以官方 API 文档为准(版本间会有变化)。

6.2 挂进内部工具

知识库建好之后,真正的价值在于被用起来。把它接到内部聊天工具里,比单独一个网址有用得多——员工不会主动打开新系统。

自建机器人的话可以参考 chatgpt-on-wechat + NoneBot 腾讯云部署教程。

第七步:运维

7.1 备份

QAnything 的数据分布在 MySQL(元数据)与 Milvus(向量)里,生产环境建议:

  • 定期备份 MySQL
  • 对数据卷做快照:docker volume ls 查看相关卷

7.2 更新

bash
1cd /opt/QAnything
2git pull
3docker compose -f docker-compose-linux.yaml pull
4docker compose -f docker-compose-linux.yaml up -d

更新前先备份,跨版本可能涉及数据结构变更。

7.3 安全

  • 用 Nginx 反代 + HTTPS,别直接暴露 8777
  • 只放行 22 / 80 / 443
  • 如果你已按 1Panel 腾讯云部署教程 装了面板,直接用它的反代功能配 HTTPS,省事

18 条故障排查

#现象原因解决
1容器起不来内存不足 20GB升配,无其它办法
2权重文件只有几十字节没装 git-lfs装后重新 clone 或 git lfs pull
3镜像拉取极慢没配加速配专属镜像地址
4页面 404少了路径后缀必须访问 :8777/qanything/(末尾斜杠也要)
5一直不出现 ready 日志首次拉镜像与模型,耗时长耐心等;看 logs/debug_logs/
6GPU 容器报驱动错误驱动版本 < 525.105.17升级 NVIDIA 驱动
7容器内看不到显卡没装 nvidia-container-toolkit装工具包并重启 docker
8连不上本地 Ollama用了 localhost改 host.docker.internal
9模型权重下载失败网络问题从 ModelScope 手动下载
10上传文档解析失败格式不支持或文件损坏换格式;确认文件能正常打开
11表格解析错乱复杂合并单元格手动拆分表格后重传
12检索召回不准纯向量方案的固有弱点确认混合检索已启用;调整提问词
13答案不带引用检索没命中检查解析状态;调整切分
14中文检索效果差用了非 BCEmbedding确认走的是自带 embedding
15磁盘快速占满镜像 + 向量数据堆积扩容;清理无用镜像
16服务重启后数据没了用了 down -v⚠️ 日常用不带 -v 的 down
17端口 8777 冲突已被占用改 compose 端口映射
18账单意外高GPU 实例未销毁⚠️ 控制台销毁实例,关机仍收费

落地建议

  1. 内存先买够 20GB —— 在这上面省钱只会换来无限重启。
  2. git-lfs 提前装 —— 漏了会导致权重全是空指针,是最隐蔽的坑。
  3. 访问路径别漏 /qanything/ —— 包括末尾斜杠,少了就 404。
  4. 用「只有文档知道答案」的问题验收 —— 通用问题测不出检索是否真的生效。
  5. 知识库的价值在入口 —— 挂进群聊或内部工具,别指望员工主动打开一个新网址。

常见问题

QQAnything 和 RAGFlow、MaxKB 该怎么选?

看场景。QAnything 的强项是**中文与跨语言检索**——自研 BCEmbedding 在中英混合、跨语言召回上表现突出,加上 BM25 + 向量的混合检索,适合文档语言混杂、要求召回率的场景,代价是硬件门槛较高(内存 20GB 起)。RAGFlow 腾讯云部署教程 主打深度文档理解与原文溯源,适合制度与合同库。 MaxKB 腾讯云部署教程 最轻,4C8G 就能跑,适合快速上手。要中文检索精度选 QAnything,要文档还原选 RAGFlow,要省事选 MaxKB。

Q没有 GPU 能部署吗?

官方 Docker 方案面向 GPU 环境(Linux 前置条件里要求 NVIDIA GPU 显存 ≥4GB,推荐 RTX 3090),因为本地的 embedding 与 rerank 模型跑在 Triton 上。如果你只有 CPU 机器,可以改用官方的「纯 Python 环境安装」版本——它支持纯 CPU 运行,但官方明确说明仅作 demo 体验,不建议生产部署。生产用建议直接上 GPU 机型,或者在 CPU 机器改用 MaxKB。

Q数据真的完全不出外网吗?

可以做到。QAnything 支持全离线私有化:本地部署大模型(官方推荐用 Ollama),embedding 与 rerank 也走本地模型,全程不调用外部 API。本文会给出接入本地 Ollama 的具体配置。注意首次部署仍需要联网拉镜像与模型权重,之后即可断网运行。

阿里云推广

读完想动手?新用户首单 8 折上云

服务器 + 大模型 API + 对象存储,新用户首购享 20% 补贴

首单 8 折云服务器大模型 API对象存储

新用户首购享 20% 补贴(8 折)· 本次推广支持本站持续运营

腾讯云推广

腾讯智能体开发平台 ADP

新客首月专属价,最高直降 880 元,构建/分发/治理企业级 Agent

智能体Agent首月直降 880一站式

腾讯云新用户专享 · 本次推广支持本站持续运营

订阅每日 AI 日报

每天早上 8:00(GMT+8)把当天 AI 行业要闻投递到你的邮箱,随时一键退订。

每天早上 8:00(GMT+8)投递当天日报;若当天日报未生成则不发送,也不会补发往期。

更多订阅方式(RSS / 微信推送)仅发送日报,不做任何其他用途

相关推荐

查看更多 →
教程云计算部署

RAGFlow 腾讯云部署完整指南

RAGFlow 是国产团队 infiniflow 开源的 RAG 引擎,最大特点是深度文档理解——表格、扫描件、复杂排版都能提取出结构,并且答案带原文溯源。本文手把手教你在腾讯云上部署 RAGFlow:从 16GB 内存的硬门槛讲起,到 vm.max_map_count 内核参数这个必踩的坑,再到模型接入、知识库构建、解析模板选择、API 对接,以及 20 条从 Elasticsearch 起不来、页面 network abnormal 到解析卡死的真实故障排查。跟着做即可完成。

2026-10-16
#RAGFlow#知识库
教程云计算部署

MaxKB 腾讯云私有化部署完整指南

MaxKB 是飞致云开源的国产知识库问答系统,数据库、向量库、缓存全部打包进一个镜像,一条 docker run 就能跑起来,比 FastGPT 更轻量。本文手把手教你在腾讯云轻量应用服务器上部署 MaxKB:Docker 一键部署与 1Panel 应用商店两条完整路径,从 4C8G 选型、接入本地 Ollama Qwen3 与国产云端模型、文档上传与分段参数调优、应用创建绑定知识库并发布的完整链路(含最容易卡住的「没发布无法对话」坑)、到嵌入第三方网站、Nginx HTTPS 与备份升级,以及 20 条常见报错排查。跟着做十分钟即可跑通第一次 RAG 问答。

2026-10-15
#MaxKB#知识库
教程云计算部署

FastGPT 腾讯云私有化部署完整指南

FastGPT 是国产开源 RAG 知识库与应用编排平台,支持 PDF/Word/Markdown/网页等多源导入、可视化工作流、召回的参数化调优与引用溯源,数据完全留在自己服务器。本文手把手教你在腾讯云轻量应用服务器上用 Docker Compose 一键部署 FastGPT(PostgreSQL + pgvector + MongoDB + OneAPI 模型网关),从 4C8G 到 8C16G 的选型建议、国产模型渠道接入(DeepSeek 与阿里云百炼 DashScope 含 embedding)、知识库分段与召回推荐参数表(实测命中率对比)、到 Nginx HTTPS、备份策略与 20 条常见报错排查。跟着做即可搭建不出内网的私有 AI 问答助手。

2026-10-14
#FastGPT#知识库
教程云计算部署

企业微信 AI 助理腾讯云搭建完整指南

用第三方协议登录个人微信做机器人有封号风险,企业微信自建应用才是官方合规方案。本文手把手教你在腾讯云服务器上搭建一个企业级 AI 助理:企业微信自建应用的创建与回调配置、CorpID/AgentID/Secret 的获取与用途、消息接收与回复的完整链路、接入本地部署的国产大模型(Ollama)、对接内部知识库实现「群里问制度」、消息加解密处理,以及 18 条从回调验证失败、access_token 失效到消息发不出去的真实故障排查。全程走官方接口,不碰第三方协议,合规可落地。

2026-10-19
#企业微信#AI助理

好物推荐 · 广告合作