12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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
- # pydantic configs
- model_config = ConfigDict(protected_namespaces=())
|