📋 官方信息
| 项目名称 | QAnything |
| 仓库地址 | https://github.com/netease-youdao/QAnything |
| 官方网站 | 网易有道 |
| 最新更新 | 2026年9月 |
| 项目定位 | 网易有道开源的本地知识库问答系统,支持任意格式文件,可断网使用 |
🎯 项目背景
QAnything(Question and Answer based on Anything)是网易有道团队开源的本地知识库问答系统。它的核心卖点是"什么格式都能吃"——无论你的资料是 PDF、Word、PPT、Excel、图片还是网页,都能上传到知识库,然后用自然语言提问,AI 会基于你的文档内容给出准确回答,并标注信息来源。
与其他 RAG 项目不同,QAnything 特别强调"本地化"和"断网可用"。它内置了有道自研的本地大语言模型和 Embedding 模型,不需要调用 OpenAI API,不需要联网,全部在本地服务器运行。这对于企业内部知识库、涉密文档问答、离线环境部署特别有价值。项目提供 Docker 和 Python 两种安装方式,Docker 版本一键启动,对普通用户非常友好。
✨ 核心特性
- 全格式支持:PDF、Word、PPT、Excel、TXT、Markdown、图片(OCR)、网页链接
- 本地大模型:内置有道本地 LLM,无需 OpenAI API,断网可用
- 高准确率:基于 RAG 技术,回答附带来源引用
- 纯 CPU 运行:不需要 GPU 也能跑起来
- 多知识库:支持创建多个独立知识库
- 开源免费:MIT 协议,可自由使用和二次开发
- 模块化设计:OCR、Embedding、Rerank 组件可替换
- 中文优化:网易有道团队开发,对中文文档理解更精准
💻 环境要求
- Docker 部署:Docker 20.10+,Docker Compose v2+,内存 8GB 以上(推荐 16GB)
- 磁盘空间:至少 20GB(含模型和数据库)
- CPU:支持纯 CPU 运行,有 GPU 更快
- 系统:Linux / macOS / Windows(WSL2)
🚀 详细部署步骤
方式一:Docker 一键部署(推荐)
# 1. 克隆仓库
git clone https://github.com/netease-youdao/QAnything.git
cd QAnything
# 2. 根据操作系统选择对应的 compose 文件启动
# Linux:
docker compose -f docker-compose-linux.yaml up -d
# macOS:
docker compose -f docker-compose-mac.yaml up -d
# Windows (WSL2):
docker compose -f docker-compose-windows.yaml up -d首次启动会自动拉取所有镜像和模型文件,整个过程可能需要 10-30 分钟,取决于网速。启动后访问 http://localhost:8777。
方式二:Python 版本(适合开发体验新功能)
# 1. 创建 Conda 环境
conda create -n qanything-python python=3.10
conda activate qanything-python
# 2. 克隆 Python 版本分支
git clone -b qanything-python https://github.com/netease-youdao/QAnything.git
cd QAnything
# 3. 安装依赖
pip install -r requirements.txt
# 4. 下载模型(脚本会自动下载到指定目录)
# 按照官方文档下载 embedding 和 LLM 模型
# 5. 启动后端
python -m qanything_server.server.server_start
# 6. 启动前端(另一个终端)
cd qanything前端目录
npm install
npm run dev📝 Docker 服务架构说明
QAnything 的 Docker 部署包含以下服务:
- mysql:存储知识库元数据和文档信息
- milvus:向量数据库,存储文档 embedding
- etcd:Milvus 的元数据存储
- minio:对象存储,存储上传的原始文件
- qanything-backend:后端服务,处理 RAG 逻辑
- qanything-frontend:前端聊天界面
🔧 配置说明
编辑 .env 或对应 compose 文件中的环境变量:
# 服务端口
FRONTEND_PORT=8777
BACKEND_PORT=5050
# 模型路径(Docker 内已配置好)
EMBEDDING_MODEL_PATH=/path/to/bce-embedding
LLM_MODEL_PATH=/path/to/qwen
# 是否使用 GPU(Docker 版本默认 CPU)
USE_GPU=false✅ 启动验证
- 查看所有容器状态:
docker compose ps - 所有服务状态应为 "Up" 或 "running"
- 首次启动需要初始化模型和数据库,等待 3-5 分钟
- 浏览器访问
http://服务器IP:8777 - 注册/登录账号
- 创建知识库,上传一份 PDF 测试文档
- 等待文档处理完成,提问验证回答质量
⚠️ 常见坑
- 内存不足会导致 Milvus 或后端启动失败,确保至少 8GB 可用内存
- 首次拉取镜像和模型文件很大(约 10GB+),耐心等待
- Windows 用户必须使用 WSL2 后端,不支持原生 Windows Docker
- 如果前端 502,等后端服务完全启动后刷新
- 文档上传后处理需要时间,大文件可能需要几分钟
📖 使用方法
创建知识库
登录后点击"新建知识库",输入名称。每个知识库是独立的文档集合。
上传文档
进入知识库,点击上传按钮,选择本地文件。支持拖拽上传多个文件。系统会自动解析文档内容、分块、向量化。
提问对话
在聊天界面选择知识库,输入问题。AI 会检索相关文档片段,生成回答并标注引用来源。点击引用可以跳转到原文位置。
❓ 常见问题
Q1: 必须联网吗?
A: 部署完成后完全可以断网使用。所有模型都是本地运行的。只是首次部署时需要下载模型文件。
Q2: 支持 GPU 加速吗?
A: 支持。修改 Docker Compose 配置启用 GPU,推理速度会明显提升。
Q3: 支持多少种文件格式?
A: 支持 PDF、DOCX、PPTX、XLSX、TXT、MD、JPG、PNG 等。图片会自动 OCR 识别文字。
Q4: 可以替换成自己的 LLM 吗?
A: 可以。QAnything 是模块化设计,支持替换 Embedding 模型和 LLM。修改配置文件即可接入 Ollama、vLLM 等。
Q5: 数据存在哪里?
A: 文件存在 MinIO 容器中,向量存在 Milvus,元数据在 MySQL。全部通过 Docker volume 持久化。
🔗 跳转链接
- GitHub 仓库:https://github.com/netease-youdao/QAnything
- Gitee 镜像:https://gitee.com/netease-youdao/QAnything
- 使用说明:官方使用文档
- 在线演示:https://qanything.ai