QAnything 是由网易有道开源的一个本地知识库问答系统,全称为 Question and Answer based on Anything。其核心目标是让用户能够基于任意本地文件进行问答,无需将数据上传至云端,支持全程离线安装与使用,断开网络也能正常工作,从而保障数据安全。
主要用途与定位:QAnything 面向需要基于私有文档构建问答能力的场景,用户只需将本地存储的任意格式文件拖入系统,即可获得准确、快速、可靠的回答。它既适合个人知识管理,也可用于企业内部文档问答、客服知识库等需要数据不出本地环境的场合。
支持的格式:当前支持 PDF(pdf)、Word(docx)、PPT(pptx)、Excel(xlsx)、Markdown(md)、Email(eml)、TXT(txt)、图片(jpg、jpeg、png)、CSV(csv)、网页链接(html)等,更多格式还在持续增加中。
核心能力:
- 两阶段检索与排序:采用第一阶段向量检索(embedding)与第二阶段重排序(rerank)相结合的方式。在知识库数据量较大的场景下,仅使用第一阶段检索会出现检索效果随数据量增加而退化的问题;引入第二阶段重排序后,准确率可以稳定提升,数据越多表现越好。系统使用 BCEmbedding 检索组件,在中英文双语及跨语言能力上表现突出。
- 大规模数据问答:支持海量数据问答,两阶段向量排序解决了大规模数据检索退化问题,上传文件数量无限制,检索速度快。
- 跨语言问答:支持跨语言问答,可在中英文之间自由切换,不受文件本身语言限制。
- 硬件友好:默认在纯 CPU 环境运行,支持 Windows、Mac、Linux 等多种平台,除 Docker 外无其他依赖。
- 灵活替换:各依赖组件(PDF 解析、OCR、embed、rerank 等)完全独立,支持自由替换。
- 多种模式:支持类似 Kimi 的快速开始模式、无文件聊天模式、仅检索模式、自定义 Bot 模式。
使用方式:
- 安装前提:需满足安装前置条件。
- 第一步:拉取 QAnything 仓库。
- 第二步:进入项目根目录,执行启动命令。
- 第三步:启动后即可开始体验。
- 系统提供 API DEBUG、关闭服务、离线使用等操作说明。
版本 2.0.0 更新要点: 2024 年 8 月 23 日,QAnything 更新至 2.0 版本。本次更新在可用性、资源消耗、检索结果、问答结果、解析结果、前端效果、服务架构和使用方式等方面均有改进。旧的 Docker 版本与 Python 版本合并为新的统一版本,使用 Docker Compose 单行命令一键启动,开箱即用。 具体优化包括:
- 支持前端配置 API_BASE、API_KEY、文本分块大小、输出 token 数量、上下文消息数量等。
- 优化 Bot 角色设定的指令遵循性,每个 Bot 可单独配置模型参数。
- 支持创建多个对话窗口,同时保存多组历史问答记录。
- 支持将问答记录保存为图片。
- 优化文件上传逻辑,解析文件与问答请求相互独立,上传文件不再影响问答。
- 优化镜像体积,旧版本镜像压缩体积为 18.94GB,新版本降至 4.88GB,缩减至原来的四分之一,并提供完整 Dockerfile。
- 检索优化,chunk 增加片段融合与排序,聚合单文档或双文档。
- 检索阶段与问答阶段均嵌入元数据信息,提升检索与问答效果。
- 显示知识库中所有文件的上传进度。
- 显示知识库中单个文件的上传进度以及各阶段耗时。
- 问答信息统计,包括各阶段耗时、token 消耗、模型信息等。
- 用户信息统计,包括上传文件总数、总耗时、问答历史记录等。
- xlsx 文件格式支持解析多个 sheet。
- 优化 PDF 表格漏识别问题。
- 修复 DOCX 文件的部分解析错误。
- 优化 FAQ 匹配逻辑。
- 支持非 UTF-8 编码的 txt 文件。
解析效果对比(1.4 版本 vs 2.0 版本):
- 大表格解析:2.0 版本能分析表格结构,包括行列布局,自动识别表头并将其置于拆分后的每个表格片段顶部,避免长表格因逻辑分割而造成语义中断。
- 分栏与跨页排版:2.0 版本可识别双栏或多栏文本布局,按人类阅读习惯正确划分文本块;同时可保存文档中的图片,确保内容完整性。示例中,1.4 版本将跨页文本“higher”分块到下一文本块,不利于大模型语义理解;2.0 版本则正确划分,并将穿插在文本段落中的图片解析为对应的 chunk 语句。非主体文本如“图 1 识别与授权及其支撑关系 37”和“封面故事 Cover Feature”被成功过滤。
- 文本块间穿插表格:1.4 版本无法识别表格,仅按文本段落格式解析,破坏表格逻辑结构并引入杂乱无用文本,影响大模型回答准确性;2.0 版本能识别并解析嵌入文本中的表格,提升解析质量与回答准确率。
- 特定小标题下文本:2.0 版本优先保证这些文本分割到同一 chunk 块以保持逻辑连贯;当文本过长需拆分时,会在每个拆分文本块前重复相同小标题以标明归属。示例中,三个文本块均添加了相同小标题“欧洲会议:机器人的法律地位”,有效避免超长文本拆分导致的语义逻辑不连贯。
- Excel(.xlsx)复杂格式:2.0 版本进行了一系列优化,以准确识别和处理行列数据。
其他信息:
- 开源版本基于 QwenLM,并在大量专业问答数据集上进行了微调,显著增强了问答能力。如需商业用途,请遵循 QwenLM 的许可证。
- 提供在线体验,以及有道速读平台。
- 可单独使用其 BCEmbedding(embedding 与 rerank)。
- 提供路线图与反馈、社区与支持渠道。
- 商务联系方式:电话 010-82558901,邮箱 AIcloud_Business@corp.youdao.com。
限制与注意事项:
- 具体安装前置条件、启动命令、API 调试方法、关闭服务、离线使用步骤等细节,官方文本未提供完整命令内容,暂未提供。
- 支持的格式列表以官方说明为准,更多格式仍在增加中。
- 开源版本用于商业用途需遵循 QwenLM 许可证。