开源的 RAG 和 workflow 技术对比调研

 一、先来了解一下开源的技术有哪些,怎么样

我自己就是做RAG工作的,但是还是想关注一下开源的技术做到了什么程度。

所以调研了很长时间,也体验了一下。这里写一篇文章来分享一下结果。

我用五一的假期时间,来做调研,看代码,做测试,写文章。为大家贡献资料。

这里先说一下自己的感受吧:这些开源的技术,还是各有所长的。应该结合融合到一起,才能更好的完成我们的生产需求。但是开源的文档解析最多能做到60的效果。

1.1 分类:rag

1.1.1 Qanything 

GitHub - netease-youdao/QAnything: Question and Answer based on Anything.

star数量:9K

社区活跃程度:24年年初开源的。刚开始活跃,现在社区不活跃(社区群没人说话,github上提的Issues 没人处理)

优势:个人觉得部署文档,相对齐全一些。代码质量也好一些。我个人在mac book上已经踩了一遍坑了。它的文档解析也是用ocr做的。此外优化了embedding模型,还有rerank模型。

劣势:资源占用挺多的。内存大概是20多个G。小内存还怕跑不起来(这里我已经是使用openAi来做回答了,如果再加上一个模型,需要的资源就更多了)。

文档:GitHub - netease-youdao/QAnything: Question and Answer based on Anything.

1.1.2 RAGflow

GitHub - infiniflow/ragflow: RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding.

star数量:6.3K

社区活跃程度:24年大概3月份开源的。社区活跃,社区群交流的人比较多。官方群有4个。虽然比Q anything晚,但是起势很猛。

优势:官方最引以为豪的是文档解析。我自己也看了代码,一方面使用到了OCR来解析,另一方面。做了非常多的雕花的工作。这是其他几个都没有的优势。

劣势:个人觉得文档没有那么全。

文档:ragflow/README_zh.md at main · infiniflow/ragflow · GitHub

1.2 分类:rag + workflow + tools (和扣子 coze 类型)

1.2.1 Dify

GitHub - langgenius/dify: Dify is an open-source LLM app development platform. Dify's intuitive interface combines AI workflow, RAG pipeline, agent capabilities, model management, observability features and more, letting you quickly go from prototype to production.

star数量26K

社区活跃程度:社区活跃,社区群交流的人比较多。现在官方全已经有7个了。

优势文档非常齐全。应该是最早开源的。工具非常齐全。它的代码的扩展性,是非常好的。整体不强依赖模型。但是支持了非常多的模型部署工具的接入。还支持工作流,有非常多的tools,并且我们想要接入自己的工具,也非常方便。代码扩展性极好,且轻量级

劣势:可能不是很关注RAG的效果,文档解析差,没用到模型,也就是说扫描件是无法处理的。

文档:欢迎使用 Dify | 中文 | Dify

1.2.2 fastGPT

GitHub - labring/FastGPT: FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration.

star数量:13K

社区活跃程度:社区活跃,社区群交流的人比较多。

优势: 文档非常齐全。工具非常齐全。它的代码的扩展性好。整体不强依赖模型。但是支持了非常多的模型部署工具的接入。还支持工作流,有非常多的tools。fastGPT的商业化道路走在了前边,这是我见到的商业化走的最成熟的一个。

劣势:可能不是很关注RAG的效果,文档解析差,没用到模型,也就是说扫描件是无法处理的。

文档:文档 | FastGPT

二、总结

这里先说一下自己的感受吧:这些开源的技术,还是各有所长的。应该结合融合到一起,才能更好的完成我们的生产需求。

我们在看它的时候,应该带有目的,是想要拿来就用,还是想在上边继续做扩展。还是说学习开眼技术的代码的扩展性,还是文档能力。个人觉得dify的扩展能力是最好的,文档也是最全的,可能得益于开源的时间比较长。

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

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

相关文章

扩展学习|本体研究进展

文献来源: 王向前,张宝隆,李慧宗.本体研究综述[J].情报杂志,2016,35(06):163-170. 一、本体的定义 本体概念被引入人工智能、知识工程等领域后被赋予了新的含义。然而不同的专家学者对本体的理解不同,所给出的定义也有所差异。 人工智能领域的学者Neches(1991)等人对…

常用AI工具分享 + IDEA内使用通义灵码

引言 随着人工智能技术的飞速发展,AI工具已经渗透到我们日常生活和工作的各个领域,带来了前所未有的便利。现在我将分享一下常用的AI工具,以及介绍如何在IDEA中使用通义灵码。 常用AI工具 1. 通义灵码 (TONGYI Lingma) - 由阿里云开发的智能…

时间复杂度空间复杂度 力扣:转轮数组,消失的数字

1. 算法效率 如何衡量一个算法的好坏?一般是从时间和空间的维度来讨论复杂度,但是现在由于计算机行业发展迅速,所以现在并不怎么在乎空间复杂度了下面例子中,斐波那契看上去很简洁,但是复杂度未必如此 long long Fib…

Java -- (part20)

一.Map集合 1.概述 双列集合的顶级接口 2.实现类 HashMap 特点: a.key唯一,value可重复->如果key重复了,会发生value覆盖 b.无序 c.无索引 d.线程不安全 e.可以存null键null值 数据结构: 哈希表 方法: LinkedHashMap 特点: a.key唯一,value可重复->如果ke…

PHP医院安全(不良)事件报告系统源码 vue2+element支持11大类不良事件上报、审核处理、分析改进

PHP医院安全(不良)事件报告系统源码 vue2element支持11大类不良事件上报、审核处理、分析改进 医院安全(不良)事件管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为…

深度学习500问——Chapter08:目标检测(6)

文章目录 8.3.7 RetinaNet 8.3.7 RetinaNet 研究背景 Two-Stage 检测器(如Faster R-CNN、FPN)效果好,但速度相对慢。One-Stage 检测器(如YOLO、SSD)速度快,但效果一般。 作者对one-stage检测器准确率不高…

QT:label标签的使用

文章目录 设置不同格式的文本显示图片文本对齐/自动换行/缩进/边距 设置不同格式的文本 在文本格式中,存在富文本,makedown格式的文本,还有纯文本,下面就依据这三个进行举例 #include "widget.h" #include "ui_w…

缩小COCO数据集

在运行YOLOS模型的过程中,需要使用到COCO2017这个数据集,但从实验运行来看,其所需时间无疑是相当漫长,预计可能需要近几十天才能完成,因此便考虑缩小COCO数据集大小,即尽可能在遵循其分布的情况下&#xff…

导游讲解口才技巧心得体会总结(3篇)

导游讲解口才技巧心得体会总结(3篇) **篇:提升表达力,传递独特魅力 在导游工作中,口才技巧的重要性不言而喻。通过不断的实践和反思,我深刻体会到提升表达力对于导游工作的重要性。一个清晰、生动、有趣的…

【c++】继承学习(一):继承机制与基类派生类转换

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章我们来学习继承部分 目录 1.继承的概念和定义继承的定义继承基类成员的访问方式变化 2.基类和派生类对象赋值转换3.继承中的作用域 1.继承的概念和定义 …

OSPF实验系列---3.综合实验

OSPF的综合实验 实验拓扑及要求如下 实验分析 1.R4为ISP,进行IP配置,区域0为公网区域,配置IP地址 2.做MGRE,R3为中心站点,形成Hub-Spoke 3.子网划分 4.私网互通,NAT转换 5.做特殊区域,修改hel…

【C++】STL简介

🔥个人主页: Forcible Bug Maker 🔥专栏: C 目录 前言什么是STL?STL的历史STL的版本STL六大组件STL的优缺点STL的优点:STL的缺点: 如何学习STL结语 前言 本篇博客主要内容:STL简介。…

01.本地工作目录、暂存区、本地仓库三者的工作关系

1.持续集成 1.持续集成CI 让产品可以快速迭代,同时还能保持高质量。 简化工作 2.持续交付 交付 3.持续部署 部署 4.持续集成实现的思路 gitjenkins 5.版本控制系统 1.版本控制系统概述2.Git基本概述3.Git基本命令 2.本地工作目录、暂存区、本地仓库三者的工作关系…

AD如何从外部导入外框或修改外框大小

一、从外部导入外框 1、从cad中导出dxf文件,从AD中导入导出的文件 2、可参考如下参数设置 3、导入确认后,选择外边框线(选择一条边的线然后按Tab键可快速选择) 4、到设计-板子形状中选择“按照选择对象定义” 5、板子外形已经出来…

数字电路-5路呼叫显示电路和8路抢答器电路

本内容涉及两个电路,分别为5路呼叫显示电路和8路抢答器电路,包含Multisim仿真原文件,为掌握FPGA做个铺垫。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 目录: 一、5路呼叫显…

前端工程化05-初始前端工程化Node基本介绍安装配置基础知识

6、初始前端工程化 6.1、工程化概述 虽然前几篇我的目录标题写的前端工程化,但是那些东西并不属于前端工程化的内容,更倾向于是js、jq当中的东西,下面我们将接触真正的前端工程化。 前端工程化开发其实现在是离不开一个东西的,…

观察者模式实战:解密最热门的设计模式之一

文章目录 前言一、什么是观察者模式二、Java实现观察者模式2.1 观察者接口2.2 具体观察者2.3 基础发布者2.4 具体发布者2.5 消息发送 三、Spring实现观察者模式3.1 定义事件类3.2 具体观察者3.3 具体发布者3.4 消息发送 总结 前言 随着系统的复杂度变高,我们就会采…

文件与IO基础常识知识

在这里,只介绍理论知识,不介绍代码。 目录 1.IO 1.1.字面概念 1.2.输入输出模型 2.文件 2.1.文件目录 2.2.文件路径 2.3.文件分类 1.IO 为了我们接下来学习的文件IO,所以我们先来认识什么是IO。 1.1.字面概念 (1&#x…

本地基于知识库的大模型的使用教程

本地基于知识库的大模型的使用教程 启动 双击 大模型启动.bat文件,内容如下: cmd /k "cd /d G:\Anaconda3\Scripts && activate.bat && cd /d D:\docdb_llm && conda activate python3.11 && python startup.py…

MFC 列表控件删除实例(源码下载)

1、本程序基于前期我的博客文章《MFC下拉菜单打钩图标存取实例(源码下载) 》 2、程序功能选中列表控件某一项,删除按钮由禁止变为可用,点击删除按钮,选中的项将删除。 3、首先在主界面添加一个删除参数按钮。 4、在myDlg.cpp 文件…