QAnything 介绍
QAnything 是由网易有道推出的开源本地知识库问答系统,基于 RAG(检索增强生成)技术开发,支持多种文件格式(如 PDF、Word、PPT、图片、网页链接等)的离线问答。其核心优势在于双语语义理解能力和两阶段检索架构(Embedding + Rerank),能有效提升大规模数据检索的准确率,数据量越大效果越好。此外,QAnything 支持跨语种问答(中英文混合问答),并可通过私有化部署保障数据安全,适用于企业级应用和个人知识库管理。
QAnything 的核心特点
- 多格式支持:兼容 PDF、Word、PPT、Markdown、TXT、图片等常见格式,支持网页内容抓取。
- 高性能检索:通过 BCEmbedding 模型和 Reranker 模型实现两阶段检索,解决数据量增大时的性能退化问题。
- 离线部署:全程可断网运行,确保数据隐私安全。
- 跨平台兼容:支持 Windows(需 WSL2)、Linux 和 macOS 系统,支持 GPU 加速与纯 CPU 模式。
- 易扩展性:可接入自定义大模型(如通义千问、ChatGLM)或云端 API(如 OpenAI)。
安装教程
环境要求
- 系统:
- Windows:需安装 WSL2(推荐 Ubuntu 22.04)、Docker Desktop 4.27.1+。
- Linux:需 NVIDIA 显卡驱动(≥546.33)、CUDA 12.0+、Docker。
- macOS:M1/M2/M3 芯片,Xcode 15.0+。
- 硬件:
- GPU 版本:NVIDIA 显卡(显存 ≥16GB,如 RTX 3090/4060 Ti)。
- CPU 版本:适用于低配置或无显卡设备(性能受限)。
步骤 1:安装依赖环境
- Windows:
- 启用 WSL2:以管理员身份运行 PowerShell,执行
wsl --install -d Ubuntu-22.04
。 - 安装 Docker Desktop,并确保关联 WSL2。
- 启用 WSL2:以管理员身份运行 PowerShell,执行
- Linux/macOS:
- 安装 Docker 和 NVIDIA 容器工具包(GPU 版本)。
步骤 2:下载项目与模型
- 克隆仓库:
git clone https://github.com/netease-youdao/QAnything.git
- 下载模型文件:
- Embedding 模型(必选):从 ModelScope 下载
models.zip
,解压至项目根目录的models
文件夹。 - LLM 模型(可选):推荐下载通义千问模型
Qwen-7B-QAnything
,放置于assets/custom_models
目录。
- Embedding 模型(必选):从 ModelScope 下载
步骤 3:配置与启动
-
修复脚本格式(仅 Windows/WSL):
sed -i "s/\r//" scripts/*.sh # 去除 DOS 换行符
-
启动服务(GPU 模式):
bash ./run.sh -c local -i 0 -b hf -m Qwen-7B-QAnything -t qwen-7b-qanything
-i 0
:指定 GPU 设备编号。-b hf
:使用 HuggingFace 推理后端。
-
CPU/OpenAI 模式:
- 修改脚本
scripts/run_for_openai_api_with_cpu_in_Linux_or_WSL.sh
,填入 OpenAI API 密钥和模型名称,运行:bash scripts/run_for_openai_api_with_cpu_in_Linux_or_WSL.sh
- 修改脚本
步骤 4:访问服务
服务启动后,浏览器访问 http://localhost:8777/qanything/
即可上传文件并提问。
常见问题解决
- 前端构建失败:替换 npm 为 yarn,并设置国内镜像源。
- GPU 驱动报错:确保 NVIDIA 驱动版本 ≥546.33,CUDA 版本 ≥12.0。
- 内存不足:调整 WSL 内存限制(在
%USERPROFILE%\.wslconfig
中设置memory=64GB
)。
应用场景
- 企业知识库:快速构建内部文档问答系统,支持合同、手册等查询。
- 教育领域:解析学术论文、教材,辅助学生高效学习。
- 客服系统:集成产品 FAQ,提升客服响应效率。