fastgpt、dify功能分析比较

目录

前言

一、dify、fastgpt是什么?

二、同场pk

1.大模型接入

2.chat(最简应用)

3.发布应用

4.知识库

5.workflow

6.其他

三、一些point记录

总结


前言

现在都开始AI应用开发,何谓AI应用,起码要和AI大模型结合,应用表现形式多是对话类,当然也可以是后台调用openapi的生成式。最典型的AI应用即最早一批的chat类应用,封装个Prompt实现助手类chat。

但是AI大模型能力再强,还是存在短板的。比如功能缺失,不能进行网页检索、不能直接查询天气、甚至不能进行代码运行。再比如,知识缺失,没有大模型训练截止日期之后的知识、没有私有知识。

这个时候就用到了function call(补充能力)、RAG(补充知识),然后新的一批AI应用就登场了,比纯chat类应用的功能更强水平更高。如dify、fastgpt、bisheng等。这类应用将模型接入、Prompt管理、知识库(rag)、插件(function call)、工作流等一条龙管理起来,通过能力整合让大模型可以发挥更大的作用,解决更复杂的场景问题。

今天,我们主要对dify、fastgpt做下分析比较


一、dify、fastgpt是什么?

Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!

简单说,dify是AI应用开发平台,而fasfgpt是知识库问答系统,更加专注于RAG相关领域。不过相关功能基本都覆盖了。接下来我们具体每个环节看下。

二、同场pk

1.大模型接入

dify支持更多的大模型接入,包括oneapi、ollama以及一众大模型,而且直接在系统界面可以配置,操作相对友好、方便,而且提供系统默认模型,可以针对推理模型、embedding模型设置默认模型,这样后续每次需要调用大模型的时候,就省的每次调整。

但是在知识库这块,竟然不能修改embedding模型,有点不知why


fastgpt主要支持openai,不过可以通过设置代理地址,从而可以连接oneapi,从而间接支持其他大模型。但是要增加一个模型支持,需要修改config.json然后重新通过docker-compose重启容器,配置相对比较复杂,对于非技术人员来说不方便。

2.chat(最简应用)

dify:

操作路径:工作室——创建空白应用——聊天助手——基础编排,图标、名称、备注,创建

应用首页是编排,编写提示词,右侧可以直接调试和预览效果。

自动编排功能,则调用大模型,根据角色信息自动生成提示词

高级功能,还可以设置参数、关联知识库

知识库检索,可以设置为N选1召回、多路召回(包括了重排序)

还可以设置开场白、下一步问题建议、引用和归属、内容审查、标注回复


fastgpt:

操作路径:应用——简易模板——取个名字,确认创建

应用首页是简易配置,编写提示词,右侧可以直接调试预览。

高级功能,还可以设置参数、关联知识库、对话开场白、猜你想问

知识库检索,搜索模式可以设置语义检索、全文检索、混合检索,结果重排,还可以搜索过滤、问题优化(通过AI自动补全知识库缺失内容),这块功能相对更全面


小结论:

dify功能布局更加合理、舒适。fastgpt这块把提示词基础设置、发布等功能混一起,操作略混乱。

fastgpt在知识库检索方面功能更加全面

3.发布应用

二者均支持新的浏览器窗口预览、嵌入、api调用

dify默认生成一个预览地址,fastgpt可以新建多个预览地址,可以单独统计使用情况

api的话均可以生成多个密钥,这个也是行业标准操作

dify可以查看应用的消息书、活跃用户数、会话互动数、token输出速度、用户满意度、费用消耗等统计数据

4.知识库

dify:

操作路径:知识库——创建知识库——选择数据源(可选导入已有文本、同步自Notion内容、同步自Web站点--还没实现),常规选择导入已有文本——上传文件

分段式设置可选:自动分段与清洗、自定义(设置分隔符、分段处长度、分段重叠长度)

索引方式可选:高质量(使用设置的默认embedding模型)、经济(离线embedding内置模型,不需要消耗token,效果较差)

可选:QA分段模型(直接将文档形成问答对)

导入后可以修改,也可以新增单个分段


fastgpt:

操作路径:知识库——新建——选择索引模型、文件处理模型,接下来也是上传文件,分为了文本、表格,其中文本中已经实现了导入网页

训练模式:直接分段、问答拆分

处理方式:自动、自定义

导入后可以修改,也可以新增单个分段

召回测试


小结论:

dify的QA分段效果更好

fastgpt分段可以预览所有分段数据

整体上,感觉差别也不是很大。一开始以为dify的知识库分段不能编辑。

不过有个问题,dify的导入文本文档,数据量比较大的情况会报错,而且速度比较慢。而fastgpt没这个问题。

搜索测试

5.workflow

dify:

应用类型选择聊天助手,聊天助手编排方法可以选择“工作流编排”,即可直接创建工作流方式的聊天助手。(应用类型直接选择工作流,没有了选择编排方法的选项,这种情况创建的是非聊天助手应用)

主要节点:LLM、知识检索、直接回复、问题分类、http请求

操作:在当前节点点击+弹出节点选择页面,以便选择添加下一节点;点击当前节点,弹出当前节点详细信息设置界面


fastgpt:AI对话、知识库检索、指定回复、问题分类

选择知识库+对话引导、问题分类+知识库,这个时候生成的都是高级编排应用即工作流编排。不过这种情况进入的界面还是简单应用的界面,这个也是我觉得fastgpt操作相比dify差一些的地方,还需要点击左侧操作栏“高级编排”,才能进入到工作流编排界面。

主要节点:LLM、知识检索、直接回复、问题分类、http请求

操作:点击左上角+,可以给当前流程图添加节点,然后将上一节点和添加节点连接;点击当前节点即可编辑当前节点详细信息,因此节点块显示会比较大。再一个一个节点可能有多个连接点,有些是逻辑连接点、有些是数据连接点。


小结论

二者大的操作上差不多,可能fastgpt功能上更细一些,可以导入导出工作流配置;但是dify操作体验上更好。

实现度也差不多,我主要就是模拟知识库查询:首先用户问题分类,非知识库问题直接回复,知识库相关问题先调用知识库检索,再通过LLM整合,最后返回给用户。

6.其他

dify内置的应用还挺多的,都可以进行参考学习,另外也有agent的案例,不过这块也偏离了fastgpt的主要功能范畴。

内置工具(插件),dify也提供了不少内置工具,这块fastgpt欠缺,目前插件功能还是实验性功能

三、一些point记录

 1、fastgpt工作流中问题分类功能不起作用,后来加了fastgpt官方群,在常见FAQ中找到答案,需要设置对应模型属性"toolChoice": false

参考链接:私有部署常见问题 | FastGPTFastGPT 私有部署常见问题icon-default.png?t=N7T8https://doc.fastai.site/docs/development/faq/


总结

整体上dify功能更加全面,操作上更加友好舒服,拥有更多的内置功能,可以让用户更好的搭建自己的应用。

而fastgpt在知识库检索方面具有一定的优势,在工作流方面做的也不错。

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

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

相关文章

.Net使用Elastic.Clients.Elasticsearch在Elasticsearch8中实现向量存储和相似度检索

文章目录 一、测试环境二、代码1、创建包含DenseVector的索引2、索引文档3、对向量字段进行近似knn检索三、参考一、测试环境 Elastic.Clients.Elasticsearch版本:8.13.0 Elasticsearch版本:8.13.0 二、代码 1、创建包含DenseVector的索引 public static bool InitIndex(…

应对电网挑战!lonQ与橡树岭国家实验室利用量子技术改善关键基础设施

内容来源:量子前哨(ID:Qforepost) 文丨浪味仙 排版丨沛贤 深度好文:1800字丨6分钟阅读 摘要:美国电网正在面临需求增加和能源扩散的挑战,对能够应对优化和安全挑战的创新解决方案有着迫切需求…

解决方案:用决策树算法如何生成决策树图及生成SQL规则

文章目录 一、现象二、解决方案 一、现象 一开始没有做过生成决策树图及生成SQL规则,一时犯了难,百度很多找到了解决方法,于是乎,写一篇博客,这样下次就能直接拿来使用咯 二、解决方案 见最后三块代码,为…

Linux 安装 NVM + Node

Docker TIP:官方文档 拉取 Node 的 Docker 镜像,具体版本可以在上面的官方文档中选择: docker pull node:14-alpine验证环境中是否有正确的 Node.js 版本: docker run node:14-alpine node -v验证环境中是否有正确的 NPM 版本&a…

利用结构类型实现简单通讯录

复合数据类型之结构类型 在C语言中,结构类型是一种复合数据类型,它允许用户将不同类型的数据组合成一个单一的数据结构。结构类型为用户提供了自定义数据类型的机制,使得可以将多个相关的数据项组合成一个整体,常用来处理像记录、…

验证二叉搜索树(98)

解题思路:可以直接中序遍历放进一个数组里根据特性判断是否是递增就可以,如果采用递归的思路话用中序遍历和创建一个指针指向前一个节点,根据前一个节点是否比上一个节点小来判断是否是二叉树 具体代码如下: class Solution { …

Mac搭建appium环境及python运行代码示例

Appium主要是通过调用安卓提供的接口来执行命令的,所以需要安装Java和安卓SDK。 1.安装Appium服务端 appium的服务端是基于node的,直接使用npm(node包管理器)安装即可,比较简单。 npm install -g appium2.安装Python客户端 pip install A…

华为P系列“砍了”,三角美学系列全新登场

2021 年 10 月,Intel 正式带来了颠覆以往的第 12 代酷睿「混合架构」 CPU。 不知道是良心发现还是为了弥补 11 代酷睿过于拉胯表现,Intel 终于把狠活儿都用在了这代。 全新 Intel 7 工艺、全新架构、单核与多核性能大幅提升,让大家十分默契…

【Linux高性能服务器编程】——高性能服务器框架

hello !大家好呀! 欢迎大家来到我的Linux高性能服务器编程系列之高性能服务器框架介绍,在这篇文章中,你将会学习到高效的创建自己的高性能服务器,并且我会给出源码进行剖析,以及手绘UML图来帮助大家来理解&…

liteide 找不到 go 路径错误修复

在配置文件:C:\Users\iwlb\AppData\Roaming\liteide\liteide.ini中修改 [liteenv] currentenvidwin64 改为 [liteenv] currentenvidsystem 启动脚本: set GO111MODULEoff set GOROOTM:\work\tool\go1.21.2.windows-amd64 set GOPATHM:\work\code\go set PATHM:\…

Win 进入桌面黑屏,只有鼠标

大家好,我叫秋意零。 今天,遇到一个同事电脑进入桌面黑屏,只有鼠标。经过询问沟通,说是 Windows 突然进行了自动更新,更新之后桌面就黑了屏。经过查询是一个桌面进程没启动才会导致桌面黑屏。首先分两种情况&#xff0…

代码随想录算法训练营DAY30|C++回溯算法Part.6|332.重新安排行程、51.N皇后、31.解数独

文章目录 332.重新安排行程思路死循环的问题记录映射关系解决死循环并解决字母序问题 伪代码实现CPP代码 51.N皇后思路伪代码实现CPP代码 31.解数独伪代码实现CPP代码 332.重新安排行程 力扣题目链接 文章讲解:332.重新安排行程 状态:题目要求所有机票都…

工业级3D可视化工具HOOPS Visualize, 快速构建移动端和PC端工程应用程序!

HOOPS Visualize是一款强大的工业级3D渲染引擎,帮助您打造出众的工程应用程序。HOOPS Visualize的基石是图形内核,这是一种全功能的,以工程为重点的场景图技术,我们称为Core Graphics。Core Graphics集成到一个框架中,…

大模型改变了NLP的游戏规则了吗

NLP已经死了吗? 自从 ChatGPT 横空出世以来,自然语言处理(Natural Language Processing,NLP) 研究领域就出现了一种消极的声音,认为大模型技术导致 NLP “死了”。在某乎上就有一条热门问答,大…

C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造

C 构造函数 构造函数是 C 中一种特殊的成员函数,当创建类对象时自动调用。它用于初始化对象的状态,例如为属性分配初始值。构造函数与类同名,且没有返回值类型。 构造函数类型 C 支持多种类型的构造函数,用于满足不同的初始化需…

Docker 部署网页版 vscode (code-server)

什么是 code-server code-server 是一个基于 Visual Studio Code 的开源项目,它允许你通过 Web 浏览器来使用 Visual Studio Code 的编辑功能。这意味着你可以在任何设备上,只要有浏览器和网络连接,就可以访问和使用 Visual Studio Code&…

漫谈HAMR硬盘的可靠性-2

很显然,HAMR已经成为业内用于提升HDD硬盘容量硬盘的技术手段。三家机械硬盘HDD厂商,希捷、西数、东芝都已对HAMR硬盘进行了十多年的研究,但只有希捷大胆押注HAMR。相反,东芝和西部数据在采用HAMR之前选择了能量辅助垂直磁记录&…

Axure中的样式

样式 首先说一下Axure里面的原点位置 如下图: 还有一个办法是我们选中我们的按钮,如上图,然后打开右边的样式,可以看按钮的x,y属性,类似于游戏中unity软件的x,y属性,类似于html中…

程序设计语言—Python几种语言区别的总结

程序设计语言篇—Python&几种语言区别的总结 文章目录 程序设计语言篇—Python&几种语言区别的总结一、Python介绍&理解1.1 Python基础1.2 Python规范 二、标识符&变量&常量三、数据类型&运算符和表达式3.1 数据类型3.2 运算符&表达式 四、常用的函…

Java实战:JSON文件到Excel文件的转换

步骤 添加依赖 首先&#xff0c;确保你的项目中已经添加了fastjson和poi的依赖。如果你使用的是Maven&#xff0c;可以在pom.xml中添加以下依赖&#xff1a; xml复制代码 <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId> <artif…