model_entities.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from enum import Enum
  2. from typing import Optional
  3. from pydantic import BaseModel
  4. from core.model_runtime.entities.common_entities import I18nObject
  5. from core.model_runtime.entities.model_entities import ProviderModel, ModelType
  6. from core.model_runtime.entities.provider_entities import SimpleProviderEntity, ProviderEntity
  7. class ModelStatus(Enum):
  8. """
  9. Enum class for model status.
  10. """
  11. ACTIVE = "active"
  12. NO_CONFIGURE = "no-configure"
  13. QUOTA_EXCEEDED = "quota-exceeded"
  14. NO_PERMISSION = "no-permission"
  15. class SimpleModelProviderEntity(BaseModel):
  16. """
  17. Simple provider.
  18. """
  19. provider: str
  20. label: I18nObject
  21. icon_small: Optional[I18nObject] = None
  22. icon_large: Optional[I18nObject] = None
  23. supported_model_types: list[ModelType]
  24. def __init__(self, provider_entity: ProviderEntity) -> None:
  25. """
  26. Init simple provider.
  27. :param provider_entity: provider entity
  28. """
  29. super().__init__(
  30. provider=provider_entity.provider,
  31. label=provider_entity.label,
  32. icon_small=provider_entity.icon_small,
  33. icon_large=provider_entity.icon_large,
  34. supported_model_types=provider_entity.supported_model_types
  35. )
  36. class ModelWithProviderEntity(ProviderModel):
  37. """
  38. Model with provider entity.
  39. """
  40. provider: SimpleModelProviderEntity
  41. status: ModelStatus
  42. class DefaultModelProviderEntity(BaseModel):
  43. """
  44. Default model provider entity.
  45. """
  46. provider: str
  47. label: I18nObject
  48. icon_small: Optional[I18nObject] = None
  49. icon_large: Optional[I18nObject] = None
  50. supported_model_types: list[ModelType]
  51. class DefaultModelEntity(BaseModel):
  52. """
  53. Default model entity.
  54. """
  55. model: str
  56. model_type: ModelType
  57. provider: DefaultModelProviderEntity