| | 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 |
| |
|
| | |
| | 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 |
| |
|
| | |
| | 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] = [] |
| |
|
| | |
| | model_config = ConfigDict(protected_namespaces=()) |
| |
|