| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 | from enum import Enumfrom typing import Optionalfrom pydantic import BaseModel, ConfigDictfrom core.model_runtime.entities.common_entities import I18nObjectfrom core.model_runtime.entities.model_entities import ModelType, ProviderModelfrom core.model_runtime.entities.provider_entities import ProviderEntityclass ModelStatus(Enum):    """    Enum class for model status.    """    ACTIVE = "active"    NO_CONFIGURE = "no-configure"    QUOTA_EXCEEDED = "quota-exceeded"    NO_PERMISSION = "no-permission"    DISABLED = "disabled"class SimpleModelProviderEntity(BaseModel):    """    Simple provider.    """    provider: str    label: I18nObject    icon_small: Optional[I18nObject] = None    icon_large: Optional[I18nObject] = None    supported_model_types: list[ModelType]    def __init__(self, provider_entity: ProviderEntity) -> None:        """        Init simple provider.        :param provider_entity: provider entity        """        super().__init__(            provider=provider_entity.provider,            label=provider_entity.label,            icon_small=provider_entity.icon_small,            icon_large=provider_entity.icon_large,            supported_model_types=provider_entity.supported_model_types        )class ProviderModelWithStatusEntity(ProviderModel):    """    Model class for model response.    """    status: ModelStatus    load_balancing_enabled: bool = Falseclass ModelWithProviderEntity(ProviderModelWithStatusEntity):    """    Model with provider entity.    """    provider: SimpleModelProviderEntityclass DefaultModelProviderEntity(BaseModel):    """    Default model provider entity.    """    provider: str    label: I18nObject    icon_small: Optional[I18nObject] = None    icon_large: Optional[I18nObject] = None    supported_model_types: list[ModelType]class DefaultModelEntity(BaseModel):    """    Default model entity.    """    model: str    model_type: ModelType    provider: DefaultModelProviderEntity    # pydantic configs    model_config = ConfigDict(protected_namespaces=())
 |