| from enum import Enum |
| from typing import Optional |
|
|
| from pydantic import BaseModel, ConfigDict |
|
|
| from core.model_runtime.entities.common_entities import I18nObject |
| from core.model_runtime.entities.model_entities import ModelType, ProviderModel |
| from core.model_runtime.entities.provider_entities import ProviderEntity |
|
|
|
|
| class 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 = False |
|
|
|
|
| class ModelWithProviderEntity(ProviderModelWithStatusEntity): |
| """ |
| Model with provider entity. |
| """ |
|
|
| provider: SimpleModelProviderEntity |
|
|
|
|
| class 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 |
|
|
| |
| model_config = ConfigDict(protected_namespaces=()) |
|
|