123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- 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=())
|