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。
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 目录。
步骤 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,提升客服响应效率。