provider_entities.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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 QuotaConfiguration(BaseModel):
  17. """
  18. Model class for provider quota configuration.
  19. """
  20. quota_type: ProviderQuotaType
  21. quota_unit: QuotaUnit
  22. quota_limit: int
  23. quota_used: int
  24. is_valid: bool
  25. restrict_llms: list[str] = []
  26. class SystemConfiguration(BaseModel):
  27. """
  28. Model class for provider system configuration.
  29. """
  30. enabled: bool
  31. current_quota_type: Optional[ProviderQuotaType] = None
  32. quota_configurations: list[QuotaConfiguration] = []
  33. credentials: Optional[dict] = None
  34. class CustomProviderConfiguration(BaseModel):
  35. """
  36. Model class for provider custom configuration.
  37. """
  38. credentials: dict
  39. class CustomModelConfiguration(BaseModel):
  40. """
  41. Model class for provider custom model configuration.
  42. """
  43. model: str
  44. model_type: ModelType
  45. credentials: dict
  46. class CustomConfiguration(BaseModel):
  47. """
  48. Model class for provider custom configuration.
  49. """
  50. provider: Optional[CustomProviderConfiguration] = None
  51. models: list[CustomModelConfiguration] = []