# Dify 还是 BISHENG?

阅读约需 11 分钟
目录

很久不见,今天单独开一篇文章浅显地对比一下 Dify 和 BISHENG 这两个开源 AI 应用框架。你问我为什么不一起说说字节的 Coze?幼儿园小朋友可不该来瞎掺和。

简述

DifyBISHENG 都是目前较为完善的开源大模型应用框架,具有良好的官方、社区支持和简单的上手门槛。

省流在前——二者各有优劣,没有一个是绝对开箱即用的“完善的”框架。如果你是个人非商业用户,无脑选用 Dify 即可;但如果你是企业用户,二者的选择就需要根据你的需求、具体商业模式、开发能力来综合决定了。


详细对比

协议

在开放性上,BISHENG 胜过 Dify
Dify 使用了其修改版的 Apache 2.0 协议,而 BISHENG 则采用了原始的 Apache 2.0 协议。唯一需要注意的是——BISHENG 仅在开源组件上使用此协议,部分可选组件是闭源的,也没有包含在开源仓库内,需要单独安装。

场景DifyBISHENG
商业使用 允许(但有条件) 允许
代码修改 允许 允许
代码分发 允许(受附加条款约束) 允许
SaaS / 多租户服务 禁止,除非获得授权 允许
去除 / 修改 LOGO 禁止,除非获得授权 允许
贡献者协议代码贡献版权一般归属项目维护者代码贡献则同意:Dify 单方面可变更协议 + 提交的代码可用于 Dify 的第一方云商业运营

Dify 的开源协议原文
BISHENG是完全开源的吗?允许商业使用吗?
BISHENG不是开源的吗?为什么这里提到申请license

功能

Dify 与 BISHENG 在功能上有很多相似之处,但也有一些显著的差异,我将针对主要的常用功能模块进行对比。

应用构建

二者均支持工作流和 Agent 的应用构建方式,在 Agent 的设计上基本一致,但在工作流的架构上有所不同。
工作流,即通过图形化界面设计任务流程,可以将多个节点(如 API 调用、数据处理等)连接起来,形成一个完整的任务执行流程。有着“节点化”的特点,低代码的优点,上手门槛不高,自由度较高,上限相较于大量的代码工作也低一些。我们的对比也主要针对工作流。

知识库

Dify 和 BISHENG 都支持知识库的构建与管理,以我个人的经验来看,二者的侧重点不同,都是“偏科选手”。

二者的具体对比如下:

功能仅 Dify 支持两者均支持仅 BISHENG 支持
非嵌入知识库(无需向量化)
知识库的外部 API 调用
向量、全文、混合检索支持
召回结果重排*
父子分块、传统分块
Notion 同步,Web 站点同步
知识文档的元数据管理和检索过滤功能
使用外部知识库
内置召回测试
召回参数(Top n、阈值等)可调节
QA 知识库
分段的编辑、管理
文本文档支持
导入本地文件
图像类知识支持
多种分块规则支持(定义多个正则,按优先级执行)

*: 并不确定 BISHENG 是否支持重排,但其没有提供显式配置位置。

可以看出,BISHENG 虽然相较于 Dify,内置了对图像类知识的支持(需要使用其闭源可选组件),但在其他方面的功能上,Dify 的知识库功能更为全面,尤其是在召回功能上,更加丰富且内置了测试工具。

模型管理

二者只有 BISHENG 在内部支持了模型操作,Dify 仅能配置其使用的模型,并不能对模型进行管理。

在这一点上,BISHENG 更像是一个一站式平台,提供了从本地模型部署到模型应用开发的完整链条,甚至内置了部分模型微调数据集管理的功能,而 Dify 则是纯粹的应用框架,专注于应用的构建与管理。
这同样是一个取舍,BISHENG 在模型管理上的优势对新手更为友好,但内置这些服务很大地提高了其硬件需求(即使不使用)。

同时,Dify 从 1.0.0 开始,引入了插件系统的设计,模型提供商也进行了插件化设计,这使得其外部模型的扩展选择更为丰富,灵活度也大幅提升;而 BISHENG 的模型提供商管理仍是内置设计,虽然原生提供了多种模型的支持,但灵活度不如 Dify。

MCP

随着 MCP (Model Context Protocol) 的发布,各个大模型框架的工具能力似乎得到了起跑线的统一。但实测下来,二者目前均是残废

外部工具

二者均支持外部工具的调用,但 Dify 更胜一筹。

其中 BISHENG 的外部工具支持基本与 Dify 版本 v0 中的实现一致,支持通过 HTTP Schema 定义的工具。
而 Dify 显然更为先进,其插件化设计让外部扩展开发简单、即插即用,官方也提供了插件市场,生态良好;同时也保留了一部分 v0 版本中 HTTP 工具的实现,支持调用 HTTP Schema 定义的工具。

生态

Dify 和 BISHENG 的生态系统都在快速稳定的发展中,二者侧重点不同,各有优劣。

易用性

二者在易用性上,显然是 Dify 更为友好。其设计上就更为针对个人用户和小型团队,提供了更为直观的界面和更少的配置需求。

在硬件要求上,Dify 对于本地部署的要求低很多,组件较少,适合个人用户和小型团队使用。而 BISHENG 则需要更高的硬件配置,尤其是在处理大规模数据、完整利用其全部功能时,对服务器的要求更为严格。


总结

总结下来,二者各有优劣,适合不同的用户群体和使用场景。

Dify 更加注重社区生态和易用性,功能更为完善,开箱即用的体验十分优秀,适合个人用户和小型团队;
而 BISHENG 则在商业支持和企业服务上更具优势,AI 应用链条完整,适合有高度自定义需求、有较为强大的开发能力的企业用户。

写下此篇时暂时不是懒狗的星语

这是开发的责任感和前瞻性的问题。不兼容的改变不应该轻易被加入到有许多依赖代码的软件中。升级所付出的代价可能是巨大的。
—— 《语义化版本》


更多文章