Spaces:
Build error
Build error
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=()) | |