dify_admin/docs/api/provider_manager.md

1.6 KiB

Provider Manager API Documentation

Overview

The ProviderManager class provides functionality for managing AI service providers, including:

  • Adding providers to tenants
  • Removing providers
  • Querying provider information
  • Bulk operations for all tenants

Class Methods

Provider Addition

  • add_provider_for_tenant(tenant_id, public_key_pem, provider_config)
    • Adds a provider to a tenant
    • Encrypts API keys using tenant's public key
    • Supports different provider types

Parameters:

  • tenant_id: Target tenant UUID
  • public_key_pem: Tenant's public key for encryption
  • provider_config: Dictionary containing provider configuration

Required Fields in provider_config:

{
    "provider_name": str,  # Unique provider name
    "config": dict  # Provider configuration including API keys
}

Bulk Operations

  • add_providers_for_all_tenants(config_path)
  • add_providers_for_tenant(tenant_name, config_path)

Provider Removal

  • delete_provider_for_tenant(tenant_id, provider_name)
  • delete_providers_for_tenant(tenant_id)

Query Methods

  • get_providers_for_tenant(tenant_id)
    • Returns all providers for a tenant
    • Format:
    [
        {
            "id": str,
            "provider_name": str,
            "provider_type": str,
            "is_valid": bool
        }
    ]
    

Security Considerations

  • API keys are encrypted using tenant's public key
  • Detailed logging of all operations
  • Validation of required fields

Error Handling

  • Raises exceptions for invalid configurations
  • Logs all errors with detailed context