provider_entities.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. CREDITS = 'credits'
  10. class SystemConfigurationStatus(Enum):
  11. """
  12. Enum class for system configuration status.
  13. """
  14. ACTIVE = 'active'
  15. QUOTA_EXCEEDED = 'quota-exceeded'
  16. UNSUPPORTED = 'unsupported'
  17. class RestrictModel(BaseModel):
  18. model: str
  19. base_model_name: Optional[str] = None
  20. model_type: ModelType
  21. class QuotaConfiguration(BaseModel):
  22. """
  23. Model class for provider quota configuration.
  24. """
  25. quota_type: ProviderQuotaType
  26. quota_unit: QuotaUnit
  27. quota_limit: int
  28. quota_used: int
  29. is_valid: bool
  30. restrict_models: list[RestrictModel] = []
  31. class SystemConfiguration(BaseModel):
  32. """
  33. Model class for provider system configuration.
  34. """
  35. enabled: bool
  36. current_quota_type: Optional[ProviderQuotaType] = None
  37. quota_configurations: list[QuotaConfiguration] = []
  38. credentials: Optional[dict] = None
  39. class CustomProviderConfiguration(BaseModel):
  40. """
  41. Model class for provider custom configuration.
  42. """
  43. credentials: dict
  44. class CustomModelConfiguration(BaseModel):
  45. """
  46. Model class for provider custom model configuration.
  47. """
  48. model: str
  49. model_type: ModelType
  50. credentials: dict
  51. class CustomConfiguration(BaseModel):
  52. """
  53. Model class for provider custom configuration.
  54. """
  55. provider: Optional[CustomProviderConfiguration] = None
  56. models: list[CustomModelConfiguration] = []