网易RAG问答知识库开源了,Star 6K!!

news2025/1/13 2:58:43

网易RAG问答知识库开源了,Star 6K!!

  • RAG 问答知识库 QAnything 开源了
  • QAnything 架构设计剖析
    • 整个架构的工作流程主要包含三个环节
    • 为什么需要两阶段检索?
    • 使用的基座大模型
    • 相关技术组件
  • QAnything 本地部署
    • 一键部署安装,特别简单
    • 部署安装 FAQ

RAG 问答知识库 QAnything 开源了

网易开源了自研的 RAG 引擎 QAnything。该引擎允许用户上传 PDF、图片、Word、Excel、PowerPoint 等多种格式的文档,并实现类似于 ChatGPT 的互动问答功能,其中每个答案都能精确追溯到相应的文档段落来源。QAnything 支持纯本地部署,上传文档数量无上限,问答准确率高。正如它的名字一样,Q 是 Question,A 是 Answer,QAnything 的目标就是万物皆可问!

在这里插入图片描述
总之,QAnything 是一个支持多种格式文件和数据库的本地知识库问答系统,可离线安装

简单上传本地文件,即可获得准确、快速、靠谱的问答体验。

目前已支持格式: PDF(pdf),Word(docx),PPT(pptx),XLS(xlsx),Markdown(md),电子邮件(eml),TXT(txt),图片(jpg,jpeg,png),CSV(csv),网页链接(html)等。

开源 Github 地址:https://github.com/netease-youdao/QAnything

QAnything 架构设计剖析

整个架构(如下图所示)包括了模型和系统等所有必要的模块。模型方面包括 OCR 解析、Embedding/rerank,以及大模型。系统方面包括向量数据库、MySQL 数据库、前端、后端等必要的模块。整个引擎的功能完整,用户可以直接下载,不需要再搭配其他的模块即可使用。系统可扩展性也非常好,只要硬盘内存足够,就可以一直建库,支持无上限的文档。

在这里插入图片描述

整个架构的工作流程主要包含三个环节

  • 索引(Indexing):文本索引的构建包括以下步骤:文档解析、文本分块、Embedding 向量化和创建索引。先将不同格式的原始文件解析转换为纯文本,再把文本切分成较小的文本块。通过 Embedding 为每一个文本块生成一个向量表示,用于计算文本向量和问题向量之间的相似度。创建索引将原始文本块和 Embedding 向量以键值对的形式存储,以便将来进行快速和频繁的搜索。

  • 检索(Retrieval):使用 Embedding 模型将用户输入问题转换为向量,计算问题的 Embedding 向量和语料库中文本块 Embedding 向量之间的相似度,选择相似度最高的前 K 个文档块作为当前问题的增强上下文信息。

  • 生成(Generation):将检索得到的前 K 个文本块和用户问题一起送进大模型,让大模型基于给定的文本块来回答用户的问题

为什么需要两阶段检索?

  • 知识库数据量大的场景下两阶段优势非常明显,如果只用一阶段Embedding检索,随着数据量增大会出现检索降级的问题。二阶段 rerank重排后能实现准确率稳定增长,即数据越多,效果越好。
  • QAnything 使用的检索组件 BCEmbedding 有非常强悍的双语和跨语种能力,能消除语义检索里面的中英语言之间的差异。

使用的基座大模型

  • 开源版本 QAnything 的大模型基于阿里通义千问,并在大量专业问答数据集上进行微调,在阿里千问的基础上大大加强了问答的能力。选择一个性价比高的大模型也是很重要的。

相关技术组件

  • BCEmbedding 文本嵌入模型
  • Triton Inference Server 推理服务
  • vLLM 在线推理服务加速器
  • FastChat 即时通讯平台
  • FasterTransformer 在线推理加速库
  • LangChain 应用开发框架
  • LangChain-Chatchat 聊天机器人应用
  • Milvus 向量数据库
  • PaddleOCR 图片识别组件
  • Sanic Python 3.6+ Web 框架

QAnything 本地部署

一键部署安装,特别简单

1:下载项目
git clone https://github.com/netease-youdao/QAnything.git

2:进入项目根目录执行启动脚本

cd QAnything

bash ./run.sh-h获取详细的LLM服务配置方法

bash run.sh      #默认在0号GPU上启动

bash close.sh    #关闭服务

部署安装 FAQ

https://github.com/netease-youdao/QAnything/blob/master/FAQ_zh.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1570052.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MATLAB源码-第30期】基于matlab的内边界边缘检测算法。

操作环境: MATLAB 2022a 1、算法描述 在计算机视觉领域,图像分割(segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)(也被称作超像素)的过程。图像分割的目的是简化…

从零开始实现一个RPC框架(一)

前言 在上一篇文章中我们先列举了大致的需求,定义了消息协议。这次我们着手搭建基本的RPC框架,首先实现基础的方法调用功能。 功能设计 RPC调用的第一步,就是在服务端定义要对外暴露的方法,在grpc或者是thrift中,这一…

Codeforces CodeTON Round 8(Div.1 + Div.2) A~E

A. Farmer John’s Challenge (模拟) 题意: 构造一个长度为 n n n的数组,将这些数组围成一个圈(顺时针)从任意一个位置打开,有且仅有 k k k个非降序排列的数组。 分析: k 1 k1 k1时,升序输…

WGCAT工单系统使用指南 - 工单有哪几种状态

WGCAT工单管理系统设计的工单生命周期比较简单易懂 1、待接收 2、处理中 3、已拒绝 4、已完成 5、已关闭

鸿蒙OS开发实例:【应用状态变量共享】

平时在开发的过程中,我们会在应用中共享数据,在不同的页面间共享信息。虽然常用的共享信息,也可以通过不同页面中组件间信息共享的方式,但有时使用应用级别的状态管理会让开发工作变得简单。 根据不同的使用场景,ArkT…

阿基米德签证管理系统源码正式发布啦,基于thinkphp8.0+element-plus+uni-app

太棒了!太棒了!太棒了! 阿基米德签证系统的上线将为签证申请流程带来更高效和便利。 为什么选择阿基米德软件? 专注于行业垂直细分领域 / 专业级系统软件开发服务商 一、用户前端支持小程序、H5、PC和APP等主流流量端口 这样可以覆盖更广泛…

【零基础学数据结构】顺序表实现书籍存储

目录 书籍存储的实现规划 ​编辑 前置准备: 书籍结构体: 书籍展示的初始化和文件加载 书籍展示的销毁和文件保存 书籍展示的容量检查 书籍展示的尾插实现 书籍展示的书籍增加 书籍展示的书籍打印 书籍删除展示数据 书籍展示修改数据 在指定位置之前…

学习鸿蒙基础(12)

目录 一、网络json-server配置 (1)然后输入: (2)显示下载成功。但是输入json-server -v的时候。报错。 (3)此时卸载默认的json-server (4)安装和nodejs匹配版本的js…

第十四篇:web后端开发-Springboot

文章目录 一、Web入门1. 什么是Spring2. SpringBootWeb入门3. HTTP 协议3.1 HTTP-概述3.2 HTTP-请求协议3.3 HTTP-响应协议 4. Web服务器4.1 Tomcat---简介4.2 基本使用 5. 请求/响应5.1 请求5.1.1 postman5.1.2 简单参数5.1.3 实体参数5.1.4 数组集合参数5.1.5 日期参数5.1.6 …

蓝桥备赛——循环+二分

题干 AC code n,kmap(int,input().split()) data[] for i in range(n):h,wmap(int,input().split())mid[]mid.append(h)mid.append(w)data.append(mid) front,tail1,100000 def find(edge_len):global kans0for wid,hei in data:ans(wid//edge_len)*(hei//edge_len)if ans>…

java Web 辅助学习管理系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 java Web 辅助学习管理系统是一套完善的信息管理系统,结合java 开发技术和bootstrap完成本系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 bootstr…

【ArcGIS微课1000例】0107:ArcGIS加载在线历史影像服务WMTS

文章目录 一、WMTS历史影像介绍二、ArcGIS加载WMTS服务三、Globalmapper加载WMTS服务一、WMTS历史影像介绍 通过访问历史影响WMTS服务,可以将全球范围内历史影像加载进来,如下所示: WMTS服务: https://wayback.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/WM…

四川易点慧电子商务抖音小店品质之选,信赖之源

随着互联网的快速发展,电子商务以其便捷、高效的特点成为越来越多消费者购物的首选。四川易点慧电子商务抖音小店,作为众多电商平台中的佼佼者,以其卓越的品质和优质的服务赢得了广大消费者的信赖。 一、品质保证,消费无忧 四川易…

整合Mybatis(Spring学习笔记十二)

一、导入相关的包 junit 包 Mybatis包 mysql数据库包 Spring相关的包 Aop相关的包 Mybatis-Spring包(现在就来学这个) 提示jdk版本不一致的朋友记得 jdk8只支持spring到5.x 所以如果导入的spring(spring-we…

高等数学基础篇(数二)之定积分的应用

定积分的应用: 一、几何应用 二、物理应用 三、几何例题 四、物理例题 目录 一、几何应用 1.平面图形的面积 2.旋转体体积 3.曲线弧长 4.旋转体侧面积 二、物理应用 三、几何例题 四、物理例题 一、几何应用 1.平面图形的面积 2.旋转体体积 3.曲线弧长…

45.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-解码发送数据内容输出到日志

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 如果看不懂、不知道现在做的什么,那就跟着做完看效果 现在的代码都是依据数据包来写的,如果看不懂代码,就说明没看懂数据包…

VUE3和SpringBoot实现ChatGPT页面打字效果SSE流式数据展示

在做这个功能之前,本人也是走了很多弯路(花了好几天才搞好),你能看到本篇博文,那你就是找对地方了。百度上很多都是使用SseEmitter这种方式,这种方式使用的是websocket,使用这种方式就搞复杂了&…

58 vue-cli 以及 webpack 提供的默认的插件, 配置

前言 vue-cli 这边作为驱动 webpack 的一个应用 它需要构造 webpack 所需要的上下文, 以及参数 这里 我们来关注一下 vue-cli 这边为 webpack 构造的参数 的相关处理 webpack 这边上下文的配置, 主要分为了几个部分, Entry, Output, Module, Resolve, Plugin, DevServer, O…

open-cd框架调试记录

源于论文Changer: Feature Interaction Is What You Need forChange Detection 源码位置:open-cd/README.md at main likyoo/open-cd (github.com) 同样是基于MMSegmentation框架的代码,不符合本人编程习惯所以一直也没有研究这东西,近期打…

第15章 File类与IO流

一 java.io.File类的使用 1.1 概述 File类及本章下的各种流,都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录(俗称文件夹),与平台无关。(体会万事万物皆对象)File 能新…