agentic_huge_data_base / wiki
页面 Dify · 6 LLM 集成与模型管理·DeepWiki 中文全文译文

6 · LLM 集成与模型管理(LLM Integration and Model Management)

应用编排与外部知识接入 · 本章是 Dify DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Dify 章节6 状态全文译文 模块模型调用与提供方适配、配置治理、入库与解析、测试、发布与运维
源码线索
  • api/controllers/console/app/generator.py
  • api/core/agent/output_parser/cot_output_parser.py
  • api/core/app/app_config/easy_ui_based_app/model_config/converter.py
  • api/core/app/llm/model_access.py
  • api/core/datasource/datasource_manager.py
  • api/core/entities/model_entities.py
  • api/core/entities/provider_configuration.py
  • api/core/hosting_configuration.py
  • api/core/llm_generator/llm_generator.py
  • api/core/llm_generator/output_parser/suggested_questions_after_answer.py
模块标签
  • 模型调用与提供方适配
  • 配置治理
  • 入库与解析
  • 测试、发布与运维
  • 工作流与编排

中文译文

LLM 集成与模型管理(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/langgenius/dify/6-llm-integration-and-model-management
翻译时间:2026-05-27T08:44:22.757Z
翻译模型:deepseek-chat
原文字符数:10756
项目:Dify (dify)

--- 好的,作为一名资深技术文档翻译专家,我将严格遵循您的要求,对这份 DeepWiki 技术文档进行全文翻译和润色。

---

大语言模型(LLM)集成与模型管理

相关源文件

本 Wiki 页面的生成参考了以下源文件:

  • api/controllers/console/app/generator.py
  • api/core/agent/output_parser/cot_output_parser.py
  • api/core/app/app_config/easy_ui_based_app/model_config/converter.py
  • api/core/app/llm/model_access.py
  • api/core/datasource/datasource_manager.py
  • api/core/entities/model_entities.py
  • api/core/entities/provider_configuration.py
  • api/core/hosting_configuration.py
  • api/core/llm_generator/llm_generator.py
  • api/core/llm_generator/output_parser/suggested_questions_after_answer.py
  • api/core/llm_generator/prompts.py
  • api/core/model_manager.py
  • api/core/ops/base_trace_instance.py
  • api/core/provider_manager.py
  • api/core/schemas/resolver.py
  • api/services/enterprise/enterprise_service.py
  • api/services/entities/model_provider_entities.py
  • api/services/model_load_balancing_service.py
  • api/services/model_provider_service.py
  • api/tests/integration_tests/model_runtime/__mock/plugin_model.py
  • api/tests/test_containers_integration_tests/services/test_api_based_extension_service.py
  • api/tests/test_containers_integration_tests/services/test_model_load_balancing_service.py
  • api/tests/test_containers_integration_tests/services/test_model_provider_service.py
  • api/tests/unit_tests/core/app/task_pipeline/test_easy_ui_based_generate_task_pipeline_core.py
  • api/tests/unit_tests/core/datasource/test_datasource_manager.py
  • api/tests/unit_tests/core/entities/test_entities_provider_configuration.py
  • api/tests/unit_tests/core/helper/test_encrypter.py
  • api/tests/unit_tests/core/llm_generator/test_llm_generator.py
  • api/tests/unit_tests/core/ops/test_base_trace_instance.py
  • api/tests/unit_tests/core/test_model_manager.py
  • api/tests/unit_tests/core/test_provider_configuration.py
  • api/tests/unit_tests/core/test_provider_manager.py
  • api/tests/unit_tests/models/test_provider_models.py
  • api/tests/unit_tests/services/test_model_load_balancing_service.py

目的与范围

本文档描述了 Dify 的大语言模型(LLM)集成系统。该系统通过统一的接口,抽象了来自不同提供商(如 OpenAI、Anthropic 等)的语言模型。内容涵盖了提供商/模型架构、凭证管理、模型调用管线以及多租户配置。

如需深入的技术细节,请参考以下子页面:

  • 提供商与模型架构:详细说明 ModelManagerProviderManager、提供商配置和凭证存储。
  • 模型调用管线:详细说明 CredentialsProviderModelFactoryModelInstance 的创建过程以及执行流程。
  • 配额管理与积分池:详细说明 LLMQuotaLayer、用量追踪以及试用版和付费版的积分池管理。

---

提供商与模型架构

该系统采用多层架构来表示大语言模型(LLM)提供商及其模型,主要由 ProviderManager api/core/provider_manager.py:64-89 进行管理。

核心实体与关系

租户、提供商和凭证之间的关系由几个关键的 SQLAlchemy 模型和领域实体定义。ProviderManager 负责将这些实体组装成运行时所需的连贯配置 api/core/provider_manager.py:100-136

classDiagram
    class "Tenant" {
        +id String
    }
    class "Provider" {
        +tenant_id String
        +provider String
        +provider_type ProviderType
    }
    class "ProviderModel" {
        +tenant_id String
        +provider_name String
        +model_name String
        +model_type ModelType
    }
    class "ProviderCredential" {
        +tenant_id String
        +provider String
        +encrypted_config Text
    }
    class "LoadBalancingModelConfig" {
        +tenant_id String
        +provider_name String
        +model_name String
        +config Text
    }

    "Tenant" "1" -- "*" "Provider" : 拥有
    "Provider" "*" -- "1" "ProviderCredential" : 使用
    "Provider" "1" -- "*" "ProviderModel" : 包含
    "ProviderModel" "1" -- "0..1" "LoadBalancingModelConfig" : 具有

来源: api/models/provider.py:44-54api/core/provider_manager.py:141-166

配置组装

ProviderManager 为特定租户组装 ProviderConfigurations api/core/provider_manager.py:100-139。该对象封装了以下内容:

  1. 系统配置:由 Dify 托管的试用或付费配额,在 Cloud 版本中通过 HostingConfiguration 管理 api/core/hosting_configuration.py:43-50
  2. 自定义配置:用户为特定提供商或单个模型提供的 API 密钥 api/core/entities/provider_configuration.py:75-81
  3. 模型设置:每个模型的启用状态和负载均衡状态 api/core/entities/provider_configuration.py:123-129

更多详情,请参阅 提供商与模型架构

---

模型调用管线

该调用管线使用 ModelInstance 抽象,将高级应用请求转换为特定于提供商的 API 调用。

模型实例获取

ModelInstance 是用于调用的运行时对象。它根据 using_provider_type(系统 vs. 自定义)解析正确的凭证 api/core/model_manager.py:137-158,并在启用负载均衡时初始化 LBModelManager api/core/model_manager.py:83-116

调用流程

该管线确保凭证在传递给底层 ModelRuntime 之前已被解密且有效。

sequenceDiagram
    participant App as "工作流/应用服务"
    participant PM as "ProviderManager"
    participant PC as "ProviderConfiguration"
    participant MI as "ModelInstance"
    participant LB as "LBModelManager"
    participant API as "LLM提供商API"

    App->>PM: get_configurations(tenant_id)
    PM-->>PC: "ProviderConfiguration"
    App->>PC: get_current_credentials(model_type, model)
    PC-->>App: "已解密的凭证"
    App->>MI: init(provider_model_bundle, model, credentials)
    MI->>LB: _get_load_balancing_manager()
    App->>MI: invoke_llm(prompt_messages)
    MI->>API: "提供商特定请求"
    API-->>MI: "LLMResult/Stream"
    MI-->>App: "LLMResult"

来源: api/core/model_manager.py:151-163api/core/entities/provider_configuration.py:115-150api/core/provider_manager.py:100-136

关于提示词构建和流式传输的详细信息,请参阅 模型调用管线

---

配额与积分管理

Dify 通过分层配额系统管理用量,特别是在 Cloud 版本中,该系统与 HostingConfigurationProviderQuotaType 集成 api/core/hosting_configuration.py:12-35

配额追踪与计费

系统使用 HostingProvider 实体来追踪 TrialHostingQuota(试用托管配额)、PaidHostingQuota(付费托管配额)和 FreeHostingQuota(免费托管配额)api/core/hosting_configuration.py:17-35。配额使用不同的单位进行追踪,例如 TIMES(次数)或 CREDITS(积分)api/core/hosting_configuration.py:70, 133

负载均衡与冷却

LBModelManager 负责处理凭证轮换,以防止触及提供商的速率限制,并管理特定凭证的冷却状态 api/services/model_load_balancing_service.py:35-43

组件职责
ModelLoadBalancingService管理负载均衡配置的生命周期和状态 api/services/model_load_balancing_service.py:45
ProviderCredentialsCache基于 Redis 的已解密凭证缓存,用于减少数据库/KMS 的负载 api/core/helper/model_provider_cache.py:31
HostingConfiguration定义 Cloud 版本的默认试用模型和配额 api/core/hosting_configuration.py:43-66
LLMGenerator用于系统级模型调用的工具(例如,生成对话标题)api/core/llm_generator/llm_generator.py:91

关于积分如何扣除和共享的详细信息,请参阅 配额管理与积分池

---

模型设置与默认值

租户可以通过 ModelProviderService api/services/model_provider_service.py:24 控制哪些模型可用以及默认使用哪些模型。

  • ModelSettings(模型设置):可以为每个租户启用或禁用单个模型 api/core/entities/provider_configuration.py:81
  • TenantDefaultModel(租户默认模型):存储每种 ModelType(大语言模型、文本嵌入、重排序等)的首选模型 api/models/provider.py:52
  • Load Balancing(负载均衡):用于在多个自定义凭证之间分配负载的配置 api/models/provider.py:45

来源: api/core/provider_manager.py:100-136api/core/entities/provider_configuration.py:115-150api/services/model_provider_service.py:56-130