provider_entities.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from enum import Enum
  2. from typing import Optional
  3. from pydantic import BaseModel
  4. from core.model_runtime.entities.model_entities import ModelType
  5. from models.provider import ProviderQuotaType
  6. class QuotaUnit(Enum):
  7. TIMES = 'times'
  8. TOKENS = 'tokens'
  9. class SystemConfigurationStatus(Enum):
  10. """
  11. Enum class for system configuration status.
  12. """
  13. ACTIVE = 'active'
  14. QUOTA_EXCEEDED = 'quota-exceeded'
  15. UNSUPPORTED = 'unsupported'
  16. class RestrictModel(BaseModel):
  17. model: str
  18. base_model_name: Optional[str] = None
  19. model_type: ModelType
  20. class QuotaConfiguration(BaseModel):
  21. """
  22. Model class for provider quota configuration.
  23. """
  24. quota_type: ProviderQuotaType
  25. quota_unit: QuotaUnit
  26. quota_limit: int
  27. quota_used: int
  28. is_valid: bool
  29. restrict_models: list[RestrictModel] = []
  30. class SystemConfiguration(BaseModel):
  31. """
  32. Model class for provider system configuration.
  33. """
  34. enabled: bool
  35. current_quota_type: Optional[ProviderQuotaType] = None
  36. quota_configurations: list[QuotaConfiguration] = []
  37. credentials: Optional[dict] = None
  38. class CustomProviderConfiguration(BaseModel):
  39. """
  40. Model class for provider custom configuration.
  41. """
  42. credentials: dict
  43. class CustomModelConfiguration(BaseModel):
  44. """
  45. Model class for provider custom model configuration.
  46. """
  47. model: str
  48. model_type: ModelType
  49. credentials: dict
  50. class CustomConfiguration(BaseModel):
  51. """
  52. Model class for provider custom configuration.
  53. """
  54. provider: Optional[CustomProviderConfiguration] = None
  55. models: list[CustomModelConfiguration] = []