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