LLM应用编排框架概览和功能分析
2022年底OpenAI的ChatGPT火爆出圈后,大模型领域相关的大工具、平台和应用纷纷涌现,大量开发者围绕LLM产生了很多新的创意和生态,短短不到2年,出现了大量优秀的大模型编排工具和框架,其中绕不开的一定是LangChain(一个简化LLM应用开发的Python开源工具库,这篇概念性介绍基本涵盖了目前LLM应用开发涉及的技术概念和知识点,非常值得阅读了解)。这里基于对LLM应用开发和相关技术点有一定了解后,分析和对比目前市面上开源和闭源的LLM应用可视化编排的方案,从中可以查看一些异同点,有助于使用这些应用平台甚至是开发一个类似的编排应用平台。
(以下内容是基于2024-10-21号之前各个产品的已有功能,个人体验后总结的,AI工具和平台生态还在快速迭代中,不代表后续观点)
LLM应用编排的定义
利用LLM相关基础设施(向量数据库,大模型运行时),结合具体场景和业务(客服、运维、数据分析等)领域知识,编排出大模型为核心的Agent智能体。这种智能体可以有效发挥大模型的技术优势(多模态理解、问题分析和推理、自然语言处理等),根据任务的输入,可以自主/半自主方式使用合适的工具来完成目标任务,实现更具智能化的信息处理和决策。
LLM编排框架概览
特性/产品 | 字节Coze | 阿里百炼 | 百度千帆AppBuilder | Dify | Flowise | Langflow |
---|---|---|---|---|---|---|
开源协议 | 不适用 | 不适用 | 不适用 | MIT许可证(有限商用) | MIT许可证 | MIT许可证 |
技术栈 | 未知 | 未知 | 未知 | Python、FastAPI、PostgreSQL等 | Node.js、React | Python、LangChain、FastAPI等 |
功能优势 | 强大的数据处理能力 集成多种AI模型 支持大规模应用部署 |
丰富的API接口 强大的数据分析能力 易于集成企业级应用 |
友好的用户界面 多种模板支持 快速构建和迭代 |
模块化设计 支持多种数据源集成 易于扩展和定制化 |
灵活的节点编辑器 实时预览和调试 强大的自动化功能 |
可视化工作流设计 模块化组件组合 支持多种模型框架集 |
易用度排名 | 1 | 2 | 2 | 1 | 3 | 3 |
完善度排名 | 1 | 2 | 2 | 1 | 3 | 3 |
此处的排名仅仅是我个人初步体验下来的感受,仅个人视角,多个产品都处于快速开发迭代中,后续还需要持续关注。
易用度从UI的交互,概念的解释和可操作性考虑
完善度从产品功能设计、编排示例、调试监控等维度考虑
字节扣子(Coze)
平台功能完善,产品逻辑清晰,易用度高,对新手门槛低,应用市场中也有大量用户编排和分享的助手,是目前我体验到的同类产品中综合来看最好的。
阿里百炼
百度千帆AppBuilder
Dify
开源社区LLM编排应用中最热门和完善的框架,实际体验下来确实比Flowise和LangFlow要直观和易用,功能更完善,目前商业化方向为Cloud版本和企业级应用编排。但受限于开源协议,商用情况需要体现Dify商标,并且多租户情况需要额外获取商业授权,这个在商用场景下需要额外注意。
Flowise
Flowise试用下来的优点是将LangChain库装配Agent的过程做了用户友好的可视化,我使用Flowise快速搭建了一个RAG助手。
这个优点同时也是缺点,这种可视化装配的方式具有消息流传递的迷惑性,实际上各个节点之间不存在消息的流动,只是将表单中组合关系形式做了个图谱方式展示,这种交互方式延续到AgentFlow(Multi-Agents和Sequential Agents编排)这个新特性时,我已经无法分清哪些节点之间是在装配Agent,哪些节点之间是消息流了
Langflow
Langflow的可视化编排对比Flowise有相同点都是画布上节点连线实现Agent灵活装配,但通过连接点的颜色来区分了装配点还是消息点,有效解决了消息流与装配关系在同一工作流画布的迷惑性。
编排了个案例,体验下来可以做到类似Coze和Dify这类基于消息流的编排功能,但操作易用性不足,消息和数据的概念需要提前理解和消化,门槛较高;RAG应用的知识库加载和配置也同样在画布,使用上没那么直观。
Langflow最大的优点是可以快捷编辑节点的Python代码逻辑,这样可以快速定制和扩展逻辑节点。查看Langflow工作流导出的元数据中,其中包含了每个节点的Python源码,这样可以快速共享和分发配置好的工作流,但同时,这个也增加了黑客攻击的风险,特别是涉及于关键系统数据交互时。
编排功能分析
体验并对比上述编排产品后,可以总结出以下的共性功能:
- 拖拽式的低代码编排
- LLM配套的基础功能:记忆、知识库、工具等
- 会话调试和监控统计
智能体
对比多个编排平台,智能体的编排都分为以下3种类型(此处使用Coze的定义),只是在不同平台称呼不同,创建的方式有一些差异。
单Agent(LLM模式)
适用于简单对话类场景,主要由以下几个模块组成:
-
系统提示词:定义Agent的角色,能力(工具)
-
配套设施:工具、知识库、记忆等
配图为Coze的LLM模式交互页面
单Agent(工作流模式)
适用于技能非常明确的场景,通过在流程中拆解任务,编排LLM使得对话过程和输出更可控,或者是在流程中与LLM进行多轮交互,实现长文本生成(第一个LLM生成大纲,后续多个LLM逐步完善文章)等LLM模式无法满足的场景。
前端UI都是基于拖拽式的低代码交互方式,降低用户使用门槛,方便业务快速定制和灵活修改。
配图为Coze的工作流模式编排页面
多Agent模式
多Agent模式的目的是组织多个智能体实现任务协作,满足并解决用户复杂任务的场景。
Flowise Multi-Agent中介绍了一个典型的AI员工的场景:一个主管Agent领导多个员工Agent,规划和分配任务,完成行业数据调查和分析,最终组织成报告发送邮件的示例。
多Agent模式更具自主性,但效果也不可控,更多依赖于LLM的自身能力和提示词的约束,所以实际应用可能还待大模型技术的后续发展。
工具
工具用于扩展LLM的能力,利用了LLM的Function Call特性,让LLM自主判断并选择适合的工具,实现AI驱动的一种方式。对应在Coze的插件,阿里百炼应用中的插件,和百度千帆的组件,Dify中的工具。
工具通常是单个API请求(如Web搜索,空气查询等开放API)封装的;涉及复杂业务场景下需要多个步骤时,单个API请求无法满足,工作流编排可以实现复杂且稳定的业务流程。
工具的相关功能需求:
-
我的工具:方便用户自定义工具,有两种工具类型,单API方式和工作流方式
-
工具市场:共享复用的工具,也可以快速基于已有工具快捷创建
知识库
知识库通过将文档分片、向量化等预处理操作后,用于后续LLM聊天时进行召回,这块预处理操作大多是与聊天异步完成的,因此常见的是设计成单独的管理模块,在编排LLM助手时配置使用即可,这个也是多数编排框架应用的设计思路(Langflow例外,是直接在编排画布中同时配置的)。
应用管理
编排的应用通过调试测试后可以发布成一个应用,发布后的应用可以方便的集成到其他系统中,支持多种方式,如API、Webhook、SDK或者页面集成聊天组件等方式。
通过编排平台发布应用后,可以方便的查看应用的运行情况,包括运行日志、错误信息、数据监控等。
以往业务工作流编排框架的异同
以往成熟的业务工作流编排框架也有很多,如广泛应用在IoT领域的Node-Red, 在自动化和集成领域的N8n, 以及在数据科学和机器学习领域的Apache Airflow等。
与Node-Red相比,LLM智能体编排框架更注重对话管理和自然语言处理能力的集成,而Node-Red主要侧重于物联网设备的数据流处理和事件驱动编程。Apache Airflow主要用于数据处理工作流的管理,虽然可以集成LLM智能体,但其主要设计目标是数据处理和机器学习工作流的管理。应用在更通用场景的N8n则在其原有特性上,增加了更多AI相关的能力,也同样实现了Chatbot的编排,可见LLM智能体编排与以往的业务编排框架大致方向是一致的,利用低代码的方式和方便扩展的机制,快速实现任务自动化、数据流转、系统集成等功能,如今叠加上LLM的AI能力,可以实现更多智能化操作。
总结
对比体验下来,个人觉得Coze是ToC市场上目前综合来看最好的LLM编排产品,Dify是开源社区里体验和完善度最高的产品,大模型技术的出现拯救了一波这类拖拽式的低代码工具,极大缓解了程序员看不上,小白用户不会用的尴尬处境。