菜单

模型提供商集成

相关源文件

Dify 中的模型提供商集成系统管理应用程序与 AI 模型提供商之间的连接,处理提供商发现、凭证管理和模型调用。该系统通过统一的抽象层,支持系统管理和自定义用户凭证,从而能够与多个 LLM 提供商(如 OpenAI、Azure OpenAI、Anthropic 等)无缝集成。

集成层是聊天应用程序、补全应用程序、工作流节点和 RAG 系统中 LLM 用途的基础。有关工作流如何利用这些集成的更多信息,请参阅 工作流引擎。有关对话处理的详细信息,请参阅 对话系统

集成架构

模型提供商集成系统通过多层架构,将 Dify 应用程序与外部 AI 提供商连接起来,该架构负责提供商发现、配置管理和模型调用。

模型提供商集成概述

来源

核心集成组件

来源

模型提供商集成系统围绕几个核心组件构建

  1. ModelProviderFactory:从插件中发现和验证提供商,处理提供商模式和凭证验证
  2. ProviderManager:管理提供商配置、凭证和租户特定设置的核心组件
  3. ModelManager:创建模型实例并管理租户间的默认模型选择
  4. ModelInstance:封装具有凭证的特定模型,提供统一的调用方法
  5. ProviderConfiguration:保存提供商的所有配置数据,包括系统/自定义凭证
  6. LBModelManager:实现跨多个凭证配置的负载均衡和故障转移

提供商发现与插件系统

集成系统使用基于插件的架构来动态发现和加载模型提供商。

提供商插件集成

来源

提供商配置管理

ProviderManager 负责管理租户工作空间中所有模型提供商的配置。它同时处理系统提供的和自定义的凭证。

配置类型

Dify 支持两种主要的提供商配置类型

  1. 系统配置:由 Dify 管理,通常在云版本中可用,有配额限制
  2. 自定义配置:用户提供的用于直接访问模型提供商的凭证

来源

提供商数据流

来源

凭证管理

系统安全地管理不同类型的凭证,使用加密来保护敏感信息,并利用缓存来提高性能。

凭证流

  1. 凭证以加密形式存储在数据库中
  2. 需要时,凭证会被解密并缓存到 Redis 中
  3. 对于自定义配置,用户可以在提供商级别或模型级别提供凭证
  4. 系统配置使用 Dify 管理的凭证

来源

系统管理的提供商支持

Dify 云版本为多个提供商提供系统管理的凭证,具有不同的配额类型

提供商配额类型备注
Azure OpenAI试用有限的 token 数量,模型有限制
OpenAI试用、付费可配置的模型和限制
Anthropic试用、付费已管理的 token 限制
其他(Minimax、Spark、ZhipuAI)免费版特定于提供商的配置

来源

模型调用与 LLM 集成

集成系统通过标准化的接口为不同的模型类型提供统一的接口,这些接口处理模型配置、凭证管理和调用。ModelInstance 类和专门的模型类型实例。

支持的模型类型

模型类型目的关键方法
LLM文本生成、聊天补全invoke_llm()get_llm_num_tokens()
TEXT_EMBEDDING向量嵌入invoke_text_embedding()get_text_embedding_num_tokens()
RERANK文档重排序invoke_rerank()
MODERATION内容过滤invoke_moderation()
SPEECH2TEXT音频转录invoke_speech2text()
TTS语音合成invoke_tts()get_tts_voices()

LLM 节点集成流程

来源

负载均衡

对于自定义提供商配置,Dify 支持对同一模型使用多个凭证配置进行负载均衡。这允许分发请求并处理速率限制或身份验证失败。

负载均衡流程

来源

负载均衡配置

系统允许管理员配置多个同一模型的凭证集,具有以下功能

  1. 轮询选择凭证
  2. 速率限制或失败凭证的自动冷却
  3. 继承自提供商级别的凭证
  4. 每个租户的配置存储

来源

与应用程序和工作流的集成

应用程序和工作流节点通过标准化的接口与模型提供商系统集成,这些接口处理模型配置、凭证管理和调用。

LLM 工作流节点集成

应用程序运行集成

来源

API 和服务层

模型提供商系统通过处理 API 请求的服务类来公开功能。

服务组件

  • ModelProviderService:提供管理提供商和模型的类
  • ModelLoadBalancingService:处理负载均衡配置
  • BuiltinToolManageService:管理使用模型的工具提供商

来源

错误处理和回调系统

该系统包含一个强大的错误处理机制和回调系统,用于跟踪模型调用、处理故障并提供日志记录。

回调类型

来源

结论

模型提供商系统是 Dify 的核心组件,可实现与各种 AI 模型提供商的无缝集成。它负责凭证管理、模型调用、负载均衡和错误处理,为构建 AI 应用程序提供了坚实的基础。