123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- from collections.abc import Sequence
- 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: Sequence[ModelType] = []
- class DefaultModelEntity(BaseModel):
- """
- Default model entity.
- """
- model: str
- model_type: ModelType
- provider: DefaultModelProviderEntity
- # pydantic configs
- model_config = ConfigDict(protected_namespaces=())
|