mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-31 19:03:09 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from enum import Enum
 | |
| from typing import Optional
 | |
| 
 | |
| from pydantic import BaseModel, ConfigDict
 | |
| 
 | |
| from core.model_runtime.entities.model_entities import ModelType
 | |
| from models.provider import ProviderQuotaType
 | |
| 
 | |
| 
 | |
| class QuotaUnit(Enum):
 | |
|     TIMES = "times"
 | |
|     TOKENS = "tokens"
 | |
|     CREDITS = "credits"
 | |
| 
 | |
| 
 | |
| class SystemConfigurationStatus(Enum):
 | |
|     """
 | |
|     Enum class for system configuration status.
 | |
|     """
 | |
| 
 | |
|     ACTIVE = "active"
 | |
|     QUOTA_EXCEEDED = "quota-exceeded"
 | |
|     UNSUPPORTED = "unsupported"
 | |
| 
 | |
| 
 | |
| class RestrictModel(BaseModel):
 | |
|     model: str
 | |
|     base_model_name: Optional[str] = None
 | |
|     model_type: ModelType
 | |
| 
 | |
|     # pydantic configs
 | |
|     model_config = ConfigDict(protected_namespaces=())
 | |
| 
 | |
| 
 | |
| class QuotaConfiguration(BaseModel):
 | |
|     """
 | |
|     Model class for provider quota configuration.
 | |
|     """
 | |
| 
 | |
|     quota_type: ProviderQuotaType
 | |
|     quota_unit: QuotaUnit
 | |
|     quota_limit: int
 | |
|     quota_used: int
 | |
|     is_valid: bool
 | |
|     restrict_models: list[RestrictModel] = []
 | |
| 
 | |
| 
 | |
| class SystemConfiguration(BaseModel):
 | |
|     """
 | |
|     Model class for provider system configuration.
 | |
|     """
 | |
| 
 | |
|     enabled: bool
 | |
|     current_quota_type: Optional[ProviderQuotaType] = None
 | |
|     quota_configurations: list[QuotaConfiguration] = []
 | |
|     credentials: Optional[dict] = None
 | |
| 
 | |
| 
 | |
| class CustomProviderConfiguration(BaseModel):
 | |
|     """
 | |
|     Model class for provider custom configuration.
 | |
|     """
 | |
| 
 | |
|     credentials: dict
 | |
| 
 | |
| 
 | |
| class CustomModelConfiguration(BaseModel):
 | |
|     """
 | |
|     Model class for provider custom model configuration.
 | |
|     """
 | |
| 
 | |
|     model: str
 | |
|     model_type: ModelType
 | |
|     credentials: dict
 | |
| 
 | |
|     # pydantic configs
 | |
|     model_config = ConfigDict(protected_namespaces=())
 | |
| 
 | |
| 
 | |
| class CustomConfiguration(BaseModel):
 | |
|     """
 | |
|     Model class for provider custom configuration.
 | |
|     """
 | |
| 
 | |
|     provider: Optional[CustomProviderConfiguration] = None
 | |
|     models: list[CustomModelConfiguration] = []
 | |
| 
 | |
| 
 | |
| class ModelLoadBalancingConfiguration(BaseModel):
 | |
|     """
 | |
|     Class for model load balancing configuration.
 | |
|     """
 | |
| 
 | |
|     id: str
 | |
|     name: str
 | |
|     credentials: dict
 | |
| 
 | |
| 
 | |
| class ModelSettings(BaseModel):
 | |
|     """
 | |
|     Model class for model settings.
 | |
|     """
 | |
| 
 | |
|     model: str
 | |
|     model_type: ModelType
 | |
|     enabled: bool = True
 | |
|     load_balancing_configs: list[ModelLoadBalancingConfiguration] = []
 | |
| 
 | |
|     # pydantic configs
 | |
|     model_config = ConfigDict(protected_namespaces=())
 | 
