🔎网易QAnything RAG项目

type
status
slug
summary
tags
category
icon
password
Date
notion image
Question and Answer based on Anything
目 录
🚀 重要更新
重要的事情说三遍!
商务问题联系方式:
010-82558901
什么是QAnything?
QAnything (Question and Answer based on Anything) 是致力于支持任意格式文件或数据库的本地知识库问答系统,可断网安装使用。
您的任何格式的本地文件都可以往里扔,即可获得准确、快速、靠谱的问答体验。
目前已支持格式: PDF(pdf)Word(docx)PPT(pptx)XLS(xlsx)Markdown(md)电子邮件(eml)TXT(txt)图片(jpg,jpeg,png)CSV(csv)网页链接(html),更多格式,敬请期待...
特点
  • 数据安全,支持全程拔网线安装使用。
  • 支持跨语种问答,中英文问答随意切换,无所谓文件是什么语种。
  • 支持海量数据问答,两阶段向量排序,解决了大规模数据检索退化的问题,数据越多,效果越好。
  • 高性能生产级系统,可直接部署企业应用。
  • 易用性,无需繁琐的配置,一键安装部署,拿来就用。
  • 支持选择多知识库问答。
架构
notion image
为什么是两阶段检索?
知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段embedding检索,随着数据量增大会出现检索退化的问题,如下图中绿线所示,二阶段rerank重排后能实现准确率稳定增长,即数据越多,效果越好
notion image
QAnything使用的检索组件BCEmbedding有非常强悍的双语和跨语种能力,能消除语义检索里面的中英语言之间的差异,从而实现:
一阶段检索(embedding)
模型名称
Retrieval
STS
PairClassification
Classification
Reranking
Clustering
平均
bge-base-en-v1.5
37.14
55.06
75.45
59.73
43.05
37.74
47.20
bge-base-zh-v1.5
47.60
63.72
77.40
63.38
54.85
32.56
53.60
bge-large-en-v1.5
37.15
54.09
75.00
59.24
42.68
37.32
46.82
bge-large-zh-v1.5
47.54
64.73
79.14
64.19
55.88
33.26
54.21
jina-embeddings-v2-base-en
31.58
54.28
74.84
58.42
41.16
34.67
44.29
m3e-base
46.29
63.93
71.84
64.08
52.38
37.84
53.54
m3e-large
34.85
59.74
67.69
60.07
48.99
31.62
46.78
bce-embedding-base_v1
57.60
65.73
74.96
69.00
57.29
38.95
59.43
二阶段检索(rerank)
模型名称
Reranking
平均
bge-reranker-base
57.78
57.78
bge-reranker-large
59.69
59.69
bce-reranker-base_v1
60.06
60.06
基于LlamaIndex的RAG评测(embedding and rerank)
notion image
NOTE:
  • 在WithoutReranker列中,我们的bce-embedding-base_v1模型优于所有其他embedding模型。
  • 在固定embedding模型的情况下,我们的bce-reranker-base_v1模型达到了最佳表现。
  • bce-embedding-base_v1和bce-reranker-base_v1的组合是SOTA。
  • 如果想单独使用embedding和rerank请参阅:BCEmbedding
LLM
开源版本QAnything的大模型基于通义千问,并在大量专业问答数据集上进行微调;在千问的基础上大大加强了问答的能力。 如果需要商用请遵循千问的license,具体请参阅:通义千问
🚀 最近更新
  • 2024-05-20支持与OpenAI API兼容的其他LLM服务,并提供优化后的PDF解析器。 - 详见👉 v1.4.1
  • 2024-04-26支持联网检索、FAQ、自定义BOT、文件溯源等。 - 详见👉 v1.4.0
  • 2024-04-03支持在纯Python环境中安装;支持混合检索。 - 详见👉 v1.3.0
  • 2024-01-29支持自定义大模型,包括OpenAI API和其他开源大模型,GPU需求最低降至GTX 1050Ti,极大提升部署,调试等方面的用户体验 - 详见👉 v1.2.0
  • 2024-01-23默认开启rerank,修复在windows上启动时存在的各类问题 - 详见👉 v1.1.1
  • 2024-01-18支持一键启动,支持windows部署,提升pdf,xlsx,html解析效果 - 详见👉 v1.1.0
开始之前
在GitHub上加星,即可立即收到新版本的通知!
notion image
开始
安装方式
我们提供两种版本: python版本和docker版本 python版本适合快速体验新功能,docker版本适合二次开发并用于实际生产环境,且新功能暂缓支持
不同安装方式对应的特性如下表:
特性
python版本
docker版本
说明
详细安装文档
✅ 详情
✅ 详情
API支持
✅ 详情
✅ 详情
生产环境(小型生产环境)
断网安装(私有化部署)
✅ 详情
支持多并发
✅ 详情
python在使用API而非本地大模型时可手动设置:详情
支持多卡推理
✅ 详情
支持Mac(M系列芯片)
目前在mac下运行本地LLM依赖llamacpp,问答速度较慢(最长数分钟),建议使用Openai-API的方式调用模型服务
支持Linux
python版本Linux下默认使用onnxruntime-gpu,glibc<2.28时自动切换为onnxruntime
支持windows WSL
支持纯CPU环境
✅ 详情
支持混合检索(BM25+embedding)
支持联网检索(需外网VPN)
✅ 详情
docker版本计划中
支持FAQ问答
✅ 详情
docker版本计划中
支持自定义机器人(可绑定知识库,可分享)
✅ 详情
docker版本计划中
支持文件溯源(数据来源可直接点击打开)
✅ 详情
docker版本计划中
支持问答日志检索(暂只支持通过API调用)
✅ 详情
docker版本计划中
支持解析语音文件(依赖faster_whisper,解析速度慢)
docker版本计划中,上传文件时可支持mp3,wav格式文件
支持OpenCloudOS
支持与OpenAI接口兼容的其他开源大模型服务(包括ollama)
✅ 详情
✅ 详情
需手动修改api_key,base_url,model等参数
pdf(包含表格)解析效果+++
用户自定义配置(实验性:提升速度)
其他文件类型解析效果+++
预计下个版本发布(15d)
纯python环境安装
不想用docker环境安装的,我们提供了纯Python版本安装教程,纯python环境的安装仅作为demo体验,不建议生产环境部署。
  • 支持纯CPU安装运行(检索部分跑在CPU上,大模型调用在线API)
  • 支持Mac安装运行
docker环境安装
必要条件
For Linux
System
Required item
Minimum Requirement
Note
Linux
NVIDIA GPU Memory
>= 4GB (use OpenAI API)
最低: GTX 1050Ti(use OpenAI API)推荐: RTX 3090
NVIDIA Driver Version
>= 525.105.17
Docker version
>= 20.10.5
docker compose version
>= 2.23.3
git-lfs
For Windows with WSL Ubuntu子系统
System
Required item
Minimum Requirement
Note
Windows with WSL Ubuntu子系统
NVIDIA GPU Memory
>= 4GB (use OpenAI API)
最低: GTX 1050Ti(use OpenAI API)推荐: RTX 3090
GEFORCE EXPERIENCE
>= 546.33
Docker Desktop
>= 4.26.1(131620)
git-lfs
step1: 下载本项目
step2: 进入项目根目录执行启动脚本
  • 执行 bash ./run.sh -h 获取详细的LLM服务配置方法
(注意)如果自动下载失败,您可以从以下三个地址之一手动下载模型。
(可选)指定单GPU启动
(可选)指定单GPU启动 - 推荐 Windows10/Windows11 WSL2 用户使用此方式运行 QAnything
(可选)指定单GPU启动 - 推荐 GPU Compute Capability >= 8.6 && VRAM >= 24GB 使用此方式运行 QAnything
(可选)指定多GPU启动
step3: 开始体验
前端页面
运行成功后,即可在浏览器输入以下地址进行体验。
  • 前端地址: http://your_host:8777/qanything/
API
如果想要访问API接口,请参考下面的地址:
  • API address: http://your_host:8777/api/
DEBUG
如果想要查看相关日志,请查看QAnything/logs/debug_logs目录下的日志文件。
  • debug.log
    • 用户请求处理日志
  • sanic_api.log
    • 后端服务运行日志
  • llm_embed_rerank_tritonserver.log(单卡部署)
    • LLM embedding和rerank tritonserver服务启动日志
  • llm_tritonserver.log(多卡部署)
    • LLM tritonserver服务启动日志
  • embed_rerank_tritonserver.log(多卡部署或使用openai接口)
    • embedding和rerank tritonserver服务启动日志
  • rerank_server.log
    • rerank服务运行日志
  • ocr_server.log
    • OCR服务运行日志
  • npm_server.log
    • 前端服务运行日志
  • llm_server_entrypoint.log
    • LLM中转服务运行日志
  • fastchat_logs/*.log
    • FastChat服务运行日志
关闭服务
断网安装
windows断网安装
如果您想要断网安装QAnything,您可以使用以下命令启动服务。
Linux断网安装
如果您想要断网安装QAnything,您可以使用以下命令启动服务。
常见问题
使用
跨语种:多篇英文论文问答
multi_paper_qa.mp4
 
信息抽取
information_extraction.mp4
 
文件大杂烩
various_files_qa.mp4
 
网页问答
web_qa.mp4
 
接入API
如果需要接入API,请参阅QAnything API 文档
贡献代码
我们感谢您对贡献到我们项目的兴趣。无论您是修复错误、改进现有功能还是添加全新内容,我们都欢迎您的贡献!
感谢以下所有贡献者
notion image
🛣️ 路线图 & 反馈
🔎 想了解QAnything的未来规划和进展,请看这里: QAnything Roadmap
🤬 想要给QAnything提交反馈,请看这里(可以给每个功能需求投票哦): QAnything Feedbak
交流 & 支持
Discord
欢迎加入QAnything Discord 社区!
微信
欢迎关注微信公众号,获取最新QAnything信息
notion image
欢迎扫码进入QAnything交流群
notion image
邮箱
如果你需要私信我们团队,请通过下面的邮箱联系我们:
GitHub issues & discussions
有任何公开的问题,欢迎提交issues,或者在discussions区讨论
notion image
Star History
notion image
协议
QAnything 依照 Apache 2.0 协议开源。
Acknowledgements
 
QAnything
netease-youdaoUpdated May 24, 2024
从音频合成照片级人类对话Avatar人工智能视频搜索引擎 (AVSE)