fastgpt、dify功能分析比较

news2024/9/28 1:23:52

目录

前言

一、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.coloradmin.cn/o/1615174.html

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

相关文章

CMake 编译项目

一、概述 cmake 是C一个很重要的编译和项目管理工具,我们在git 上以及常见的项目现在多数都是用cmake 管理的,那么我们今天就做一个同时有Opencv和CGAL 以及PCL 的项目。 二、项目管理 重点是CMakeList.txt 1、CMakeList.txt cmake_minimum_requir…

力扣HOT100 - 104. 二叉树的最大深度

解题思路: class Solution {public int maxDepth(TreeNode root) {if (root null) return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }

构建云原生湖仓:Apache Iceberg与Amoro的结合实践

随着大数据技术的快速发展,企业对数据的处理和分析需求日益增长。传统的数据仓库已逐渐无法满足现代业务对数据多样性和实时性的要求,这促使了数据湖和数据仓库的融合,即湖仓一体架构的诞生。在云原生技术的推动下,构建云原生湖仓…

C语言——小知识和小细节15

一、二维数组与指针 例一 下面的程序运行结果是什么&#xff1a; #include <stdio.h>int main() {int arr[3][2] { (1,2),(3,4),(5,6) };int* p arr[0];printf("%d\n", *p);return 0; } 运行结果&#xff1a; 实际上这里有个小细节&#xff0c;就是二维数…

《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》【大模型思维链】

目录 前言一、思维链介绍1-1、指令1-2、逻辑依据1-3、示例 二、Cot一般分类2-1、Zero-Shot-CoT2-2、Few-Shot-CoT 三、Cot的好处&缺陷&适用3-1、Cot的好处3-2、Cot的缺陷3-3、Cot的适用 四、变体4-1、自我验证&#xff08;self-consistency checking&#xff09; 总结 …

首发!Llama3纯本地部署攻略!中文方法!

引言 llama3在4月19日刚刚发布&#xff0c;官方的对比结果中在开源模型中堪称世界第一&#xff0c;整好周六日有时间&#xff0c;在魔搭社区上测试一下 一、启动环境 登录魔搭社区&#xff0c;到自己的机器资源&#xff0c;可以看到&#xff0c;可选的机器配置&#xff0c; …

UE5 GAS开发P31 将hud绑定在自己的角色上

在WidgetController内新建一个OverlayAuraWidgetController,然后修改HUD的初始状态 AuraHUD // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/HUD.h" #…

Ubuntu系统下 Nvidia驱动 + cuda驱动 + CuDNN安装与卸载

Ubuntu系统下 Nvidia驱动 cuda驱动 CuDNN安装与卸载 一、NVIDIA驱动与CUDA驱动的区别二、NVIDIA驱动安装与卸载1. 查看系统内核版本2. 查看显卡型号3. 查看是否有显卡驱动4. 禁用nouveau并重启5. 卸载旧版本6. 安装&#xff11;&#xff1a;使用标准Ubuntu仓库进行自动化安装…

四川易点慧电子商务抖音小店:安全正规,购物新选择

在当今互联网高速发展的时代&#xff0c;电子商务已经成为人们日常购物的重要组成部分。四川易点慧电子商务抖音小店作为新兴的电商平台&#xff0c;凭借其安全正规的经营理念和便捷高效的购物体验&#xff0c;正逐渐赢得消费者的信赖和喜爱。 一、平台背景实力雄厚 四川易点慧…

面试十八、容器适配器

容器适配器是一种特殊类型的容器&#xff0c;它们提供了一种不同于常规容器的接口和行为。容器适配器通常是建立在其他容器之上&#xff0c;通过改变接口或添加限制来满足特定的需求或解决特定的问题。 在 C 中&#xff0c;标准库提供了三种常见的容器适配器&#xff1a; 栈&am…

在PostgreSQL中如何处理大对象(Large Objects),例如存储和检索二进制文件?

文章目录 存储二进制文件为大对象步骤 1&#xff1a;创建一个大对象步骤 2&#xff1a;写入数据到大对象 检索大对象为二进制文件步骤 1&#xff1a;打开大对象以进行读取步骤 2&#xff1a;从大对象读取数据 注意事项 PostgreSQL 提供了对大对象&#xff08;Large Objects&…

JavaSE-15笔记【注解(+2024新)】

文章目录 1.注解概述2.几个常用的JDK内置的注解2.1 Deprecated2.2 Override2.3 SuppressWarnings2.4 FunctionalInterface 3.自定义注解3.1 注解也可以定义属性3.2 注解的使用规则补充 4.元注解4.1 Retention4.2 Target4.3 Documented4.4 Inherited4.5 Repeatable 5.通过反射获…

修改npm源--多种方式

2024年&#xff0c;1月22日 npm.taobao.org 域名证书已到期下线。 重置官方源 npm config set registry https://registry.npmjs.org/ 淘宝源&#xff0c;使用最新版&#xff0c;旧版停止了 npm config set registry https://registry.npmmirror.com 查看当前镜像源 npm …

精心整理的不同操作系统不同实现方案网络安全中的权限提升117种提权手法

精心整理的不同操作系统不同实现方案网络安全中的权限提升117种提权手法。 什么是网络安全中的权限提升&#xff1f; 在网络安全领域&#xff0c;了解威胁至关重要&#xff0c;而最关键的威胁之一就是特权升级的概念。从本质上讲&#xff0c;权限升级是指攻击者获得通常为高级用…

阿斯达年代记怎么下载 阿斯达年代记三强争霸下载教程

阿斯达年代记怎么下载 阿斯达年代记三强争霸下载教程 阿斯达年代记是一款三国争霸类型的游戏&#xff0c;在游戏中大家可以体验到三权争霸的刺激场景&#xff0c;在战场中大家不仅可以体验到体验到文化交织还可以感受到战场的残酷&#xff0c;本期小编将会给大家带来阿斯达年代…

vue-manage-system 版本更新,让开发更加简单

vue-manage-system 近期进行了一次版本升级&#xff0c;主要是支持了更多功能、升级依赖版本和优化样式&#xff0c;并且上线了官方文档网站&#xff0c;大部分功能都有文档或者使用示例&#xff0c;更加适合新手上手开发&#xff0c;只需要根据实际业务简单修改&#xff0c;就…

记录:阿里云服务器网站搭建(3)

Docker安装配置Tomcat 拉取镜像 docker pull tomcat:8启动一个tomcat容器用于拷贝配置文件 docker run -d -p 8080:8080 --name tomcat tomcat:8拷贝容器内tomcat配置文件和日志到本地准备映射 docker cp tomcat:/usr/local/tomcat/conf /mydata/tomcat/confdocker cp tomca…

【Linux系统化学习】线程控制

目录 前言 POSIX线程库 线程控制 创建线程 线程终止 pthread_exit()函数 pthread_cancel()函数&#xff08;会在下面线程等待部分详解&#xff09; 线程等待 pthread_join()函数 获取线程退出码 分离线程 线程取消(pthread_cancel()函数&#xff09; 线程ID及进程…

http 3.0 有哪些新特性

HTTP/3 是超文本传输协议&#xff08;HTTP&#xff09;的最新主要版本&#xff0c;其显著特点是放弃了传统的TCP作为传输层协议&#xff0c;转而采用基于UDP的QUIC&#xff08;Quick UDP Internet Connections&#xff09;协议。以下是HTTP/3利用QUIC实现高性能传输的关键特性&…

街道社区信息宣传工作做的好这个投稿方法不能少

作为一名刚刚接手街道社区信息宣传工作的新人,伊始对于如何有效地向各大媒体平台投稿我可谓是一头雾水。那时的日子充满了曲折与挑战,每一步都似乎布满了荆棘。为了让更多居民了解社区的工作动态和服务亮点,我怀揣着满腔热情,着手撰写一篇篇生动详实的新闻稿件。然而,投稿的过程…