Dify VS FastGPT —— 两个出色的整合大模型应用的开源项目
在基于大语言模型 API 的生态上,有那么几种类型的应用解决不同的痛点:
- 使用最广泛的是网页或软件在API上套壳,方便有网络障碍和弹性需要的用户;
- 检索增强生成(RAG),适用于垂直和私有化数据领域;
- 结合第三方软件,包括 SaaS 平台、本地工具,扩展模型的能力;
- 低代码拖控件调度工作流,降低个性化定制的门槛;
- 统一API接管,应对各家模型如雨后春笋般发布的场景。
而 langgenius/dify 和 labring/FastGPT 将以上功能集于一身,是开源AI项目中的佼佼者,类似的项目还有 Bisheng 和 TaskingAI(国外的新起之秀)等。综合体验下来,我选择 Dify 和 FastGPT 的社区版作为其中代表进行比较, 这两个应用也是我使用最多的,在不同服务器上都部署过,以下评价并非严谨的测试,仅作为主观使用感受总结。
安装和运行环境:
Dify | FastGPT | 对比 | |
---|---|---|---|
向量数据库 | weaviate、qdrant、milvus | pgvector |
Dify支持更多底层数据库,并且支持在不同的数据库迁移数据 |
网关 | 前端接入厂商,少数厂商支持代理 | 后端可统一API代理,如OneAPI、NewAPI | FastGPT可使用更好的模型管理底座 |
资源消耗 | 3个应用容器,依赖4个底层服务 | 一个应用容器,依赖两个底层服务,1个可选的代理网关和本地模型 | FastGPT非工作模式下不超过1G,Dify消耗更多内存,日程占用2GB左右 |
配置 | 复杂的安装环境配置,简单的前端模型配置 | 简单的安装环境配置,繁琐的后端模型配置 | Dify前期配置难一些,初次部署容易出错;FatGPT需要对模型更熟悉 |
升级 | 一键升级,自动迁移 | 升级后需要单独命令行迁移数据库,重要版本更新可能还需要手动改表操作 | Dify完胜 |
综合这一环节,Dify对服务器硬件和网络环境有更高的要求,但具有运维时间成本优势。
UI 体验:
Dify | FastGPT | 对比 | |
---|---|---|---|
入口便捷性 | 应用入口多一步开始对话操作 | 入口简单 | FastGPT便捷 |
操作灵敏度 | 网页打开慢,不跟手 | 轻便 | FastGPT性能占优 |
信息展示 | 富文本展示简陋 | Markdown渲染更鲜明 | FastGPT对话页观感更好 |
输入框 | 图片支持URL上传 支持应用置顶 生成的图片保存到服务器不丢失 |
支持对话条目删除、重新生成 显示token消耗、响应时间等 |
在图片功能上Dify更方面,文本上FastGPT更方便 |
移动布局 | 手机上内容被样式块挤压严重 | 合理的弹性元素控制 | FastGPT更好的响应式布局 |
稳定性 | 偶尔延迟较高,长文本输出偶尔出错 | 目前没发现明显的BUG | FastGPT性能占优 |
上手难度 | 丰富的文档 | 缺乏功能说明 | Dify对新手用户更友好 |
综合这一环节,FastGPT在前端交互体验上更好用。
功能比较:
Dify | FastGPT | 对比 | |
---|---|---|---|
多租户 | 支持多用户(团队内数据透明),多团队 | 单用户 | Dify适合团队,FastGPT只适合个人使用,当然考虑到其轻量,前端只需一个容器,可以一机多部署 |
脚本功能 | 支持本地沙盒,运行python和JavaScript脚本 | 不支持脚本 | Dify功能更强,不过FastGPT也可以用http调用外部脚本 |
高级编排 | Workflow支持更多内置工具 | 支持应用调用 | 两者的工作流编排都还比较简陋,调度非常不灵活,不支持模块复用、循环、变量引用等比较复杂的函数功能 |
调试功能 | 支持多模型同步调试、单节点调试、调试历史记录 | 只能聊天框调试 | Dify工作流功能更强大 |
模型参数 | 支持更多模型参数设置 | 只支持温度和tokens长度 | Dify自由度更高 |
其他社区版功能 | 版权和隐私政策声明,样式定制、内容审察, GitHub、Google注册和登录 |
无 | Dify对社区更友好 |
综合这一环节,Dify 预制的功能更多,不过考虑到这些功能还不够成熟或者可替代性强,在使用体验上还是UI交互影响更大。
兼容性和数据保护
Dify | FastGPT | 对比 | |
---|---|---|---|
聊天导出 | 不支持聊天内容导出 | 支持html、markdown、pdf导出 | FastGPT胜 |
知识库导出 | 不支持知识库导出 | 支持知识库分段内容导出为csv | FastGPT更友好,知识库分段是个细活 |
知识库分类 | 支持对文档进行元数据标注和分段关键字标注 | 支持文件夹管理和原始文档留档 | 各有好处 |
应用导出 | DSL文件导出,与其他平台兼容性更好 | 自定义json,方便在不同fastgpt部署中导入 | Dify更方便 |
应用API | 自有格式 | 和OpenAI的API格式兼容,方便接入其他聊天工具 | FastGPT更方便 |
综合这一环节,FastGPT社区版弥补了它只能单用户的缺陷。
项目前景
比较两者代码仓库的贡献历史,Dify是团队的作品,更重视产品的设计,而FastGPT几乎是个人独立开发,FastGPT早期快速迭代,更快的引入新功能,追求良好的性能;
FastGPT早期全免费开源给用户,Github上的 start 数一度比Dify多,从4.0版开始才改了开源协议,转而对社区版做了功能限制,卖商业套件,而Dify团队致力于运营一个 SaaS 平台,社区版功能和平台版差别不大。
Dify对第三方产品的接入持比较积极的态度,对个人和小团队用户更加友好,因而有一个良好的社区生态,而FastGPT对数据的导入导出更开放,并倾向于与自家的产品结合起来,例如Sealos、Laf。
在开发进度上,FastGPT早期积攒了一大波用户,但自从重心放在商业版之后开发放缓,而Dify稳步迭代,在功能上逐渐超越FastGPT。
另外个人感觉FastGPT在低代码开发工作流应用或插件的设计上更优秀,有点像面向对象的风格,支持应用为其他应用所调用、前端也可以直接使用插件、全局变量可随时访问和修改,以及参数设置更加灵活,包括在调用AI模块时通过引用前面变量的方式来传入模型选择和历史记录。而Dify的的优点是将很多热门工具和第三方API接口内置在系统组件中,对初级用户更友好。
总结,如果是普通用户,我更推荐Dify,如果具有一定的代码开发能力,我推荐FastGPT。
评论