QAnything

QAnything

多格式文件支持的本地知识库智能问答系统

QAnything是一款支持多种文件格式的本地知识库智能问答系统。该系统可离线安装使用,支持PDF、Word、PPT等多种文件格式,具备数据安全、跨语言问答和海量数据处理能力。通过采用两阶段检索排序技术,QAnything有效解决了大规模数据检索退化问题。系统设计注重易用性,无需复杂配置,可一键安装部署,适合企业级应用场景。

QAnything知识库问答系统大语言模型文件格式支持BCEmbeddingGithub开源项目
<div align="center"> <a href="https://github.com/netease-youdao/QAnything"> <!-- 请在此处提供您的logo路径 --> <img src="https://yellow-cdn.veclightyear.com/835a84d5/0140f487-c8c5-4393-9494-b4a0c4421aec.png" alt="Logo" width="800"> </a>

基于任何内容的问答系统

<p align="center"> <a href="./README.md">English</a> | <a href="./README_zh.md">简体中文</a> | <a href="./README_jp.md">日本語</a> </p> </div> <div align="center">

<a href="https://qanything.ai"><img src="https://img.shields.io/badge/在线试用-qanything.ai-purple"></a>      <a href="https://read.youdao.com#/home"><img src="https://img.shields.io/badge/在线试用-read.youdao.com-purple"></a>     

<a href="./LICENSE"><img src="https://img.shields.io/badge/许可证-Apache--2.0-yellow"></a>      <a href="https://github.com/netease-youdao/QAnything/pulls"><img src="https://img.shields.io/badge/欢迎-PR-red"></a>      <a href="https://twitter.com/YDopensource"><img src="https://img.shields.io/badge/关注-%40YDOpenSource-1DA1F2?logo=twitter&style={style}"></a>     

<a href="https://discord.gg/5uNpPsEJz8"><img src="https://img.shields.io/discord/1197874288963895436?style=social&logo=discord"></a>     

</div> <details open="open"> <summary>目录</summary> </details>

🚀 重要更新

<h1><span style="color:red;">重要的事情说三遍。</span></h1>

2024-05-17:最新安装使用说明文档

2024-05-17:最新安装使用说明文档

2024-05-17:最新安装使用说明文档

商务联系方式:

010-82558901

什么是QAnything?

QAnything(基于任何内容的问答)是一个本地知识库问答系统,设计用于支持广泛的文件格式和数据库,允许离线安装和使用。

使用QAnything,您可以简单地放入任何本地存储的任意格式文件,并获得准确、快速和可靠的答案。

目前支持的格式包括:PDF(pdf)Word(docx)PPT(pptx)XLS(xlsx)Markdown(md)电子邮件(eml)TXT(txt)图像(jpg,jpeg,png)CSV(csv)网页链接(html),更多格式即将推出...

主要特性

  • 数据安全,支持全程拔掉网线安装使用。
  • 跨语言QA支持,可以自由切换中英文QA,不受文档语言限制。
  • 支持海量数据QA,两阶段检索排序,解决大规模数据检索退化问题;数据越多,效果越好。
  • 高性能生产级系统,可直接部署用于企业应用。
  • 用户友好,无需繁琐配置,一键安装部署,即开即用。
  • 多知识库QA 支持选择多个知识库进行问答

架构

<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/a4dec030-dcbd-457d-8a29-8b37e9588ebf.png" width = "700" alt="qanything_system" align=center /> </div>

为什么使用两阶段检索?

在知识库数据量大的场景下,两阶段方法的优势非常明显。如果只使用第一阶段的嵌入检索,随着数据量的增加会出现检索退化的问题,如下图绿线所示。但是经过第二阶段的重排序后,可以稳定提升准确率,数据越多,效果越好

<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/aafe616d-d946-45d6-b477-151c60fbbf8b.jpg" width = "500" alt="two stage retrievaal" align=center /> </div>

QAnything使用检索组件BCEmbedding,它以双语和跨语言能力著称。BCEmbedding在弥合中英文语言差距方面表现出色,实现了

  • <a href="https://github.com/netease-youdao/BCEmbedding/tree/master?tab=readme-ov-file#evaluate-semantic-representation-by-mteb" target="_Self">MTEB语义表示评估</a>中的高性能
  • <a href="https://github.com/netease-youdao/BCEmbedding/tree/master?tab=readme-ov-file#evaluate-rag-by-llamaindex" target="_Self">LlamaIndex的RAG评估</a>领域树立了新的基准

第一阶段检索(嵌入)

模型检索STS对分类分类重排聚类平均
bge-base-en-v1.537.1455.0675.4559.7343.0537.7447.20
bge-base-zh-v1.547.6063.7277.4063.3854.8532.5653.60
bge-large-en-v1.537.1554.0975.0059.2442.6837.3246.82
bge-large-zh-v1.547.5464.7379.1464.1955.8833.2654.21
jina-embeddings-v2-base-en31.5854.2874.8458.4241.1634.6744.29
m3e-base46.2963.9371.8464.0852.3837.8453.54
m3e-large34.8559.7467.6960.0748.9931.6246.78
bce-embedding-base_v157.6065.7374.9669.0057.2938.9559.43

第二阶段检索(重排)

模型重排平均
bge-reranker-base57.7857.78
bge-reranker-large59.6959.69
bce-reranker-base_v160.0660.06

LlamaIndex中的RAG评估(嵌入和重排)

<img src="https://yellow-cdn.veclightyear.com/835a84d5/b5a7b999-ed23-4c00-8727-5ea431afe4f6.jpg">

注意:

  • 无重排设置下,我们的bce-embedding-base_v1优于所有其他嵌入模型。
  • 固定嵌入模型的情况下,我们的bce-reranker-base_v1取得了最佳性能。
  • bce-embedding-base_v1bce-reranker-base_v1的组合达到了最先进水平
  • 如果您想单独使用嵌入和重排,请参考BCEmbedding

大语言模型

QAnything的开源版本基于QwenLM,并在大量专业问答数据集上进行了微调。它极大地增强了问答能力。 如果您需要将其用于商业目的,请遵循QwenLM的许可。更多详情,请参考:QwenLM

🚀 最新更新

  • 2024-05-20支持其他与OpenAI API兼容的大型模型服务,并提供优化的强大PDF解析器。 - 查看更多👉 v1.4.1
  • 2024-04-26支持网络搜索、FAQ、自定义机器人、文件可追溯性预览等。 - 查看更多👉 v1.4.0
  • 2024-04-03支持纯Python环境安装。支持混合搜索。 - 查看更多👉 v1.3.0
  • 2024-01-29支持自定义大型模型,包括OpenAI API和其他开源大型模型,最低GPU要求为GTX 1050Ti,极大改善部署、调试和用户体验。 - 查看更多👉 v1.2.0
  • 2024-01-23默认启用重排,修复Windows启动时的各种问题。 - 查看更多👉 v1.1.1
  • 2024-01-18支持一键启动,支持Windows部署,提高PDF、XLSX、HTML解析效率。 - 查看更多👉 v1.1.0

开始之前

在GitHub上为我们点星,立即获得新版本通知! star_us

开始使用

安装方法

我们提供两个版本: Python版本和Docker版本 Python版本适合快速体验新功能,而Docker版本适合二次开发和在实际生产环境中使用,暂时不支持新功能。

不同安装方法对应的功能如下:

功能Python版本Docker版本说明
详细安装文档详情详情
支持API详情详情
支持生产环境
支持离线安装(私有化部署)详情
支持多并发详情Python版本使用API而非本地大模型时,可手动设置。详情
支持多卡推理详情
支持Mac(M系列芯片)目前在Mac上运行本地LLM依赖llamacpp,问答速度较慢。建议使用OpenAI API调用模型服务。
支持LinuxPython版本在Linux下默认使用onnxruntime-gpu,glibc<2.28时自动切换为onnxruntime。
支持windows WSL
支持仅CPU详情
支持混合搜索(BM25+embedding)
支持网页搜索(需要VPN)详情Docker版本计划中。
支持FAQ详情Docker版本计划中。
支持BOT详情Docker版本计划中。
支持溯源详情Docker版本计划中。
支持通过API查询日志详情Docker版本计划中。
支持音频文件Docker版本计划中,上传文件将支持mp3和wav格式文件。
支持OpenCloudOS详情
支持与Openaiapi兼容的接口(包括ollama)详情详情需要手动设置api_key、base_url、model等参数。
PDF解析性能提升(包括表格)详情
用户自定义配置(实验性:提高速度)详情
其他文件类型解析性能提升预计15天后发布下一版本。

安装(纯Python环境)

如果您不想使用Docker进行安装,我们提供了纯Python安装指南。纯Python环境的安装仅用于演示目的,不建议在生产环境中部署。

  • 支持仅CPU安装(检索在CPU上运行,而大语言模型调用在线API)。
  • 支持在Mac上安装。

安装(Docker)

先决条件

Linux系统

系统所需项目最低要求注意
LinuxNVIDIA GPU内存>= 4GB(使用OpenAI API)最低:GTX 1050Ti(使用OpenAI API)<br> 推荐:RTX 3090
NVIDIA驱动版本>= 525.105.17
Docker版本>= 20.10.5Docker安装
docker compose版本>= 2.23.3docker compose安装
git-lfsgit-lfs安装

Windows WSL Ubuntu子系统

系统所需项目最低要求注意
Windows WSL Ubuntu子系统NVIDIA GPU内存>= 4GB(使用OpenAI API)最低:GTX 1050Ti(使用OpenAI API)<br> 推荐:RTX 3090
GEFORCE EXPERIENCE>= 546.33GEFORCE EXPERIENCE下载
Docker Desktop>= 4.26.1(131620)Windows版Docker Desktop
git-lfsgit-lfs安装

懒人安装步骤,请点击这里。

步骤1:拉取qanything仓库

[object Object],[object Object]

步骤2:进入项目根目录并执行启动脚本。

[object Object],[object Object],[object Object],[object Object],[object Object]
<details> <summary>(注意)如果自动下载失败,您可以从以下三个地址之一手动下载模型。</summary>

modelscope:https://modelscope.cn/models/netease-youdao/QAnything

wisemodel:https://wisemodel.cn/models/Netease_Youdao/qanything

huggingface:https://huggingface.co/netease-youdao/QAnything

</details> <details> <summary>(可选)指定GPU启动</summary>
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
</details> <details> <summary>(可选)指定GPU启动 - 推荐Windows10/Windows11 WSL2用户使用</summary>
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
</details> <details> <summary>(可选)指定GPU启动 - 推荐GPU计算能力 >= 8.6且VRAM >= 24GB的用户使用</summary>
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
</details> <details> <summary>(可选)指定多GPU启动</summary>
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
</details>

步骤3:开始体验

前端

安装成功后,您可以通过在网络浏览器中输入以下地址来体验应用。

  • 前端地址:http://your_host:8777/qanything/

API

如果您想访问API,请参考以下地址:

调试

如果您想查看相关日志,请查看QAnything/logs/debug_logs目录下的日志文件。

  • debug.log
    • 用户请求处理日志
  • sanic_api.log
    • 后端服务运行日志
  • llm_embed_rerank_tritonserver.log(单卡部署)
    • LLM嵌入和重排tritonserver服务启动日志
  • llm_tritonserver.log(多卡部署)
    • LLM tritonserver服务启动日志
  • embed_rerank_tritonserver.log(多卡部署或使用OpenAI接口)
    • 嵌入和重排tritonserver服务启动日志
  • rerank_server.log
    • 重排服务运行日志
  • ocr_server.log
    • OCR服务运行日志
  • npm_server.log
    • 前端服务运行日志
  • llm_server_entrypoint.log
    • LLM中间服务器运行日志
  • fastchat_logs/*.log
    • FastChat服务运行日志

关闭服务

如果您使用的是Windows11系统:需要进入WSL环境。

[object Object],[object Object]

离线安装

如果您想离线安装QAnything,可以使用以下命令启动服务。

Windows离线安装

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Linux离线安装

[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

常见问题

常见问题

使用示例

跨语言:多篇英文论文问答

信息提取

各种文件

网页问答

API文档

如果您需要访问API,请参考QAnything API文档

贡献

我们感谢您对为我们的项目做出贡献的兴趣。无论您是修复错误、改进现有功能,还是添加全新的内容,我们都欢迎您的贡献!

感谢所有贡献者的努力

<a href="https://github.com/netease-youdao/QAnything/graphs/contributors"> <img src="https://contrib.rocks/image?repo=netease-youdao/QAnything" /> </a>

🛣️ 路线图和反馈

🔎 要了解QAnything的未来计划和进展,请查看:QAnything路线图

🤬要向QAnything提供反馈,请查看:QAnything反馈

社区和支持

Discord <a href="https://discord.gg/5uNpPsEJz8"><img src="https://img.shields.io/discord/1197874288963895436?style=social&logo=discord"></a>

欢迎加入QAnything的Discord社区

微信

欢迎关注QAnything微信公众号,获取最新信息。

<img src="https://yellow-cdn.veclightyear.com/835a84d5/4f19ec11-1185-4f8e-8880-a5a63597730c.jpg" width="30%" height="auto">

欢迎扫码加入QAnything讨论群。

<img src="https://yellow-cdn.veclightyear.com/835a84d5/0ef171df-94d0-4a26-a1c0-d303a556e96d.jpg" width="30%" height="auto">

电子邮件

如果您需要私下联系我们的团队,请通过以下电子邮件与我们联系:

qanything@rd.netease.com

GitHub问题和讨论

通过以下方式与维护者联系:

<a href="https://github.com/netease-youdao/QAnything/discussions"> <img src="https://github.com/netease-youdao/QAnything/assets/29041332/ad027ec5-0bbc-4ea0-92eb-81b30c5359a1" alt="Logo" width="600"> </a>

Star历史

Star历史图表

许可证

QAnything采用Apache 2.0许可证

致谢

QAnything采用了以下项目的依赖:

  • 感谢我们的BCEmbedding提供优秀的嵌入和重排序模型。
  • 感谢Qwen提供强大的基础语言模型。
  • 感谢Triton Inference Server提供出色的开源推理服务。
  • 感谢FastChat提供完全兼容OpenAI的API服务器。
  • 感谢FasterTransformervllm提供高度优化的LLM推理后端。
  • 感谢Langchain提供出色的LLM应用框架。
  • 感谢Langchain-Chatchat为本地知识库问答提供的灵感。
  • 感谢Milvus提供优秀的语义搜索库。
  • 感谢PaddleOCR提供易用的OCR库。
  • 感谢Sanic提供强大的Web服务框架。
  • 感谢RAGFlow为文档解析提供一些想法。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多