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

2024-05-04 02:28

本文主要是介绍开源的 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的扩展能力是最好的,文档也是最全的,可能得益于开源的时间比较长。

这篇关于开源的 RAG 和 workflow 技术对比调研的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

exfat和ntfs哪个好? U盘格式化选择NTFS与exFAT的详细区别对比

《exfat和ntfs哪个好?U盘格式化选择NTFS与exFAT的详细区别对比》exFAT和NTFS是两种常见的文件系统,它们各自具有独特的优势和适用场景,以下是关于exFAT和NTFS的详细对比... 无论你是刚入手了内置 SSD 还是便携式移动硬盘或 U 盘,都需要先将它格式化成电脑或设备能够识别的「文