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