Dify 中的模型提供商集成系统管理应用程序与 AI 模型提供商之间的连接,处理提供商发现、凭证管理和模型调用。该系统通过统一的抽象层,支持系统管理和自定义用户凭证,从而能够与多个 LLM 提供商(如 OpenAI、Azure OpenAI、Anthropic 等)无缝集成。
集成层是聊天应用程序、补全应用程序、工作流节点和 RAG 系统中 LLM 用途的基础。有关工作流如何利用这些集成的更多信息,请参阅 工作流引擎。有关对话处理的详细信息,请参阅 对话系统。
模型提供商集成系统通过多层架构,将 Dify 应用程序与外部 AI 提供商连接起来,该架构负责提供商发现、配置管理和模型调用。
来源
来源
模型提供商集成系统围绕几个核心组件构建
集成系统使用基于插件的架构来动态发现和加载模型提供商。
来源
ProviderManager 负责管理租户工作空间中所有模型提供商的配置。它同时处理系统提供的和自定义的凭证。
Dify 支持两种主要的提供商配置类型
来源
来源
系统安全地管理不同类型的凭证,使用加密来保护敏感信息,并利用缓存来提高性能。
来源
Dify 云版本为多个提供商提供系统管理的凭证,具有不同的配额类型
| 提供商 | 配额类型 | 备注 |
|---|---|---|
| Azure OpenAI | 试用 | 有限的 token 数量,模型有限制 |
| OpenAI | 试用、付费 | 可配置的模型和限制 |
| Anthropic | 试用、付费 | 已管理的 token 限制 |
| 其他(Minimax、Spark、ZhipuAI) | 免费版 | 特定于提供商的配置 |
来源
集成系统通过标准化的接口为不同的模型类型提供统一的接口,这些接口处理模型配置、凭证管理和调用。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() |
来源
对于自定义提供商配置,Dify 支持对同一模型使用多个凭证配置进行负载均衡。这允许分发请求并处理速率限制或身份验证失败。
来源
系统允许管理员配置多个同一模型的凭证集,具有以下功能
来源
应用程序和工作流节点通过标准化的接口与模型提供商系统集成,这些接口处理模型配置、凭证管理和调用。
来源
模型提供商系统通过处理 API 请求的服务类来公开功能。
来源
该系统包含一个强大的错误处理机制和回调系统,用于跟踪模型调用、处理故障并提供日志记录。
来源
模型提供商系统是 Dify 的核心组件,可实现与各种 AI 模型提供商的无缝集成。它负责凭证管理、模型调用、负载均衡和错误处理,为构建 AI 应用程序提供了坚实的基础。