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在知识库检索方面具有一定的优势,在工作流方面做的也不错。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

13-LINUX--消息队列

一.消息队列 1.消息队列:消息队列为一个进程向另一个进程发送一个数据块提供了条件,每个数据块会包含一个类型。 2.相关函数 1>.msgget(key_t key,int msgflg) : 创建消息队列 2>. msgsnd:把消息添加到消息队列 3>.msgrcv &#xf…

【iOS开发】(四)react Native第三方组件五个20240419-20

react native 外的 第三方组件 目录标题 react native 外的 第三方组件(一)与rn核心组件的使用步骤区别:(二)第三方组件概览1 WebView2 Picker3 Swiper4 AsyncStorage5 Geolocation6 Camera (三)详细学习1 WebViewCoco…

C语言 分支控制语句之 if

然后 我们来说 流程控制语句之 if 选择控制结构 是通过 分支语句来实现的 其中 包括 单分支选择语句通过 (if) 来实现 双分支语句通过 (if) 和 (else) 实现 多分支语句通过 (if) (else if) (else) 实现 对于单分支来讲 它控制的语句就是 要嘛做 要嘛不做 好比如 放假了 你是…

MySQL基础之单表操作(定义DDL,增删改DML,查DQL)

目录 一、概述1.1 什么是数据库1.2 连接MySQL1.3 数据模型1.4 SQL语句的分类1.5 数据类型 二、数据库设计-DDL2.1 数据库层面2.2 数据表层面创建表约束查询修改add,modify,change,drop,rename删除 三、数据库操作-DML3.1 添加数据insert3.2 修改数据update3.3 删除数据delete 四…

插值与重采样在AI去衣技术中的关键作用

在人工智能(AI)的众多应用中,去衣技术作为一种新兴的图像处理技术,逐渐引起了广泛关注。这项技术不仅涉及复杂的计算机视觉和深度学习算法,还需要对图像处理中的插值与重采样技术有深入的理解。本文将详细探讨插值与重…

霸气归来,AKG N9 Hybrid头戴式降噪耳机震撼发布!手边的“大耳”瞬间不香了?

自1947年Rudolf Grike博士和Ernst Pless先生在“音乐之都”维也纳创立AKG以来,品牌已经走过77载辉煌历程,其产品被广泛应用于全球各大巡回演出和录音棚中,为全球音乐爱好者和专业人士提供了无数优质的声音体验。 近日,AKG再度以王…

(一)Java EE企业级应用开发实战之Servlet教程——JDK安装

首先打开清华大学开源软件镜像站,清华大学开源镜像网站地址为: https://mirrors.tuna.tsinghua.edu.cn/ 打开该地址后的界面显示如下图所示 找到8版本对应的SDK安装包,我现在用的开发机器是Windows,所以我找的是Windows对应的版本…

手机文件怎么传给商家打印?

在数字化时代,手机已经成为我们生活和工作中不可或缺的工具。当需要将手机中的文件传给商家打印时,传统的打印店往往要求通过微信等社交软件传输文件,这种方式非常操作繁琐。那么,手机文件怎么传给商家打印呢?琢贝云打…

Kotlin语法快速入门-函数(4)

Kotlin语法快速入门-函数(4) 文章目录 Kotlin语法快速入门-函数(4)四、函数1、函数定义2、infix关键字3、参数省略4、函数类型参数5、多参数--vararg 四、函数 1、函数定义 fun 函数名(参数: 类型) :返回值类型{//函…

“EDM邮件营销”如何构建企业获客增长新赛道

在这个瞬息万变的数字时代,企业的营销策略不断进化,以求在激烈的市场竞争中脱颖而出。其中,“EDM(Electronic Direct Mail)邮件营销”作为一项经典且高效的营销手段,正借助先进的技术力量,重新焕…

网络常识!!!

网络常识!!! 一:网络的发展史二:关键的概念三:IP地址四:端口号二级目录二级目录二级目录二级目录三级目录 一:网络的发展史 从游戏方面发展历程进行理解: 从单机游戏-----游戏支持局域网对战-------游戏支持广域网对战-------移动端 (1)局域网对战:在同一个网吧里,不同的游戏…

stable diffusion本地部署@win10

一键无脑安装stable-diffusion-webui stable diffusion是当前非常出色的文生图模型,要优于以前gan文生图模型。现在有了stable-diffusion-webui软件,可以一键安装,大大简化了操作难度。本文档就是stable-diffusion-webui在windows 10上的安装…

MySql 安装教程+简单的建表

目录 1.安装准备 1.MySQL官方网站下载 2.安装步骤 3.测试安装 4.简单的建表 1.安装准备 1.MySQL官方网站下载 下载安装包或者压缩包都可以 选择相应版本,点击Download开始通过网页下载到本地(压缩包下载快一些) 2.安装步骤 双击此.exe…

SpringAOP从入门到源码分析大全(三)ProxyFactory源码分析

文章目录 系列文档索引五、ProxyFactory源码分析1、案例2、认识TargetSource(1)何时用到TargetSource(2)Lazy的原理(3)应用TargetSource 3、ProxyFactory选择cglib或jdk动态代理原理4、jdk代理获取代理方法…

Java学习笔记29(泛型)

1.泛型 ArrayList<Dog> arrayList new ArrayList<Dog>(); //1.当我们ArrayList<Dog>表示存放到ArrayList集合中的元素是Dog类 //2.如果编译器发现添加的类型&#xff0c;不满足要求&#xff0c;就会报错 //3.在便利的时候&#xff0c;可以直接取出Dog类型而…

go的编译以及运行时环境

开篇 很多语言都有自己的运行时环境&#xff0c;go自然也不例外&#xff0c;那么今天我们就来讲讲go语言的运行时环境&#xff01; 不同语言的运行时环境对比 我们都知道Java的运行时环境是jvm &#xff0c;javascript的运行时环境是浏览器内核 Java -->jvm javascript…

进阶C语言-文件操作

文件操作 &#x1f388;1.为什么使用文件&#x1f388;2.什么是文件&#x1f52d;2.1程序文件&#x1f52d;2.2数据文件&#x1f52d;2.3文件名 &#x1f388;3.文件的打开和关闭&#x1f52d;3.1文件指针&#x1f52d;3.2文件的打开和关闭 &#x1f388;1.为什么使用文件 ✅ 我…

【从浅学到熟知Linux】进程间通信之匿名管道方式(进程间通信方式汇总、匿名管道的创建、匿名管道实现进程池详解)

&#x1f3e0;关于专栏&#xff1a;Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。 &#x1f3af;每天努力一点点&#xff0c;技术变化看得见 文章目录 进程间通信介绍如何实现进程间通信进程间通信分类 管道通信方式什么是管道匿名管道pipe匿名管道读写规则管…

ros Moveit学习记录(一) MoveIt Setup Assistant

ros MoveIt Setup Assistant 记录 1. 准备工作2. 使用记录a. 打开Moveit! Setup Assistantb. *Create New Moveit Configuration* -> 填入urdf.xacro的地址c. Self-Collisions&#xff1a;全选了即可d. Define Virtual Jointse. Define Planning Groupsf. Define Robot Pose…

腾讯云服务器价格明细表2024年最新(CPU内存/带宽/磁盘)

腾讯云服务器价格明细表2024年最新&#xff08;CPU内存/带宽/磁盘&#xff09;腾讯云服务器租用优惠价格表&#xff1a;轻量应用服务器2核2G3M价格61元一年&#xff0c;2核2G4M价格99元一年、135元15个月、540元三年&#xff0c;2核4G5M带宽165元一年、252元15个月、756元3年&a…