Release

【Release】Dify推出新架构,提升灵活性与可扩展性

分类:Release

Dify 推出全新“蜂群”架构,通过模块化设计实现组件独立开发与水平扩展。新版引入 Model Runtime,提供统一接口与 YAML 配置,显著降低模型接入成本,助力开发者高效构建多模态 AI 应用。

Dify 发布全新架构,大幅提升灵活性与可扩展性

Dify 是一款基于大语言模型(LLM)的应用开发开源平台。与 LangChain 等聚焦单一交互点的产品不同,Dify 提供了丰富的交互触点,能够应对更复杂的集成需求。它作为一个前沿的多触点服务层,确保了不同接口与平台间的高度兼容与一致性。这为各类系统与应用的无缝集成和高效交互提供了坚实保障。

2024 年将是多模态开发的关键之年。要在行业中保持领先,就必须快速适应技术趋势的演变。我们深知,要更好地服务开发者,必须在稳固的架构基础上,融入更高的灵活性、可扩展性与协作能力。为此,我们彻底重构了 Dify 的底层架构,全面转向模块化设计。此次更新支持各组件独立开发、测试与部署。同时,它实现了水平扩展能力,可灵活适配多种应用场景,无需等待官方版本更新。此外,统一的 API 设计也进一步提升了不同触点间的兼容体验。

Dify 蜂群架构(Beehive Architecture)

我们非常自豪 Dify 能在此领域率先突破,尤其是在这一关键时间节点。以全新的 Dify 蜂群架构开启这一新篇章,标志着我们迈出了重要的一步。

顾名思义,蜂群架构的布局灵感源自蜂巢的六边形结构。该设计让每个模块既独立又协同,兼具灵活性与可扩展性。整体系统更易于维护与升级,支持对单个模块进行迭代,而不会影响全局结构。架构内置了构建 LLM 应用所需的核心技术,包括海量模型支持、易用的 Prompt 编排界面、高性能 RAG 引擎、灵活的 Agent 框架,以及简洁直观的接口与 API。这免去了开发者从零搭建的繁琐工作,让他们能更专注于创新想法与业务需求的落地。

蜂群架构的高度集成,也展现了蜂巢般的协作特性。各组件紧密配合,高效完成复杂任务。这种协作理念正是 Dify 一直以来的追求:让 AI 技术真正触手可及,即使是没有技术背景的用户也能轻松上手。

未来规划

展望未来,Dify 计划进一步模块化更多功能,以持续提升系统的灵活性与扩展能力。主要规划如下:

  • RAG 引擎组件模块化:将 RAG 引擎拆分为 ETL、Embedding、索引构建与数据召回等独立模块。开发者可针对每个环节自由选用工具、模型与策略,获得更高的自定义自由度。
  • 扩展工具支持:Dify 将逐步支持符合 OpenAPI Specification 标准的工具,并兼容 OpenAI Plugin 标准。这将大幅丰富 Dify 的工具库,满足更广泛的使用场景与用户需求。
  • 更灵活的工作流配置:开发者将能够根据自身的业务流程与需求,自由调整工作流。这将使 Dify 成为多行业、多场景的首选工具,全面契合各类业务要求。

Model Runtime

伴随此次架构重构,我们正式推出了首个服务模块 Model Runtime。这标志着重构计划的全面启动,也是提升系统灵活性与扩展能力的关键一步。

在 0.4.0 版本发布前,Dify 已支持数百款主流商业与开源模型,涵盖本地部署与 MaaS 模式。支持类型包括 LLM、Text Embedding、Rerank、Speech2Text、TTS 等。然而,Dify 此前依赖的 LangChain 框架较为复杂且灵活性不足,导致开发者接入新模型困难重重。常见问题包括侵入式开发、缺乏标准接口规范,以及前后端需兼顾不同编程语言带来的维护负担。

Model Runtime 有效解决了这一痛点。它大幅简化了模型接入流程,支持开发者灵活配置模型供应商。这种“即插即用”的模式,让开发者能够以更快的速度接入各类模型。

核心升级亮点

统一接口规范

所有模型类型(如文本 Embedding 或推理模型)均提供精简、统一的接口。这种一致的访问方式,大幅简化了模型集成流程,提升了开发效率。

# 示例:使用 Anthropic 大语言模型,所有模型均继承自基础模型类
class AnthropicLargeLanguageModel(LargeLanguageModel):
    # _invoke() 是调用任意模型的统一入口
    # 以 LLM 类为例,该方法将返回生成的文本
    def _invoke(self):
        # 实现具体的调用逻辑,包括输入输出转换、流式处理、Token 统计等
        # ...
        # 其他功能

基于 YAML 的简化配置

我们采用专属 DSL,以声明式方式配置模型供应商与具体模型。代码结构更加清晰,不仅规范了新模型的接入流程,也让供应商与模型参数的配置更加直观易读。

provider: anthropic
description:
  en_US: Anthropic’s powerful models, such as Claude 2 and Claude Instant.
supported_model_types:
  - llm
credential_form_schemas:
  - variable: anthropic_api_key
    label:
      en_US: API Key
    type: secret
    input: true
文章来源: https://dify.ai/blog/dify-rolls-out-new-architecture
← 返回文章列表