model.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. # coding=utf-8
  2. from drf_spectacular.types import OpenApiTypes
  3. from drf_spectacular.utils import OpenApiParameter
  4. from rest_framework import serializers
  5. from common.mixins.api_mixin import APIMixin
  6. from common.result import ResultSerializer, DefaultResultSerializer
  7. from models_provider.serializers.model_serializer import ModelModelSerializer, ModelCreateRequest
  8. from django.utils.translation import gettext_lazy as _
  9. class ModelCreateResponse(ResultSerializer):
  10. def get_data(self):
  11. return ModelModelSerializer()
  12. class ModelListResponse(APIMixin):
  13. @staticmethod
  14. def get_response():
  15. class ModelListResult(ResultSerializer):
  16. def get_data(self):
  17. return ModelModelSerializer(many=True)
  18. return ModelListResult
  19. @staticmethod
  20. def get_parameters():
  21. return [OpenApiParameter(
  22. name="workspace_id",
  23. description=_("workspace id"),
  24. type=OpenApiTypes.STR,
  25. location=OpenApiParameter.PATH,
  26. required=True,
  27. ),
  28. OpenApiParameter(
  29. name="name",
  30. description=_("model name"),
  31. type=OpenApiTypes.STR,
  32. location=OpenApiParameter.QUERY,
  33. required=False,
  34. ),
  35. OpenApiParameter(
  36. name="model_type",
  37. description=_("model type"),
  38. type=OpenApiTypes.STR,
  39. location=OpenApiParameter.QUERY,
  40. required=False,
  41. ),
  42. OpenApiParameter(
  43. name="model_name",
  44. description=_("base model"),
  45. type=OpenApiTypes.STR,
  46. location=OpenApiParameter.QUERY,
  47. required=False,
  48. ),
  49. OpenApiParameter(
  50. name="provider",
  51. description=_("provider"),
  52. type=OpenApiTypes.STR,
  53. location=OpenApiParameter.QUERY,
  54. required=False,
  55. ),
  56. OpenApiParameter(
  57. name="create_user",
  58. description=_("create user"),
  59. type=OpenApiTypes.STR,
  60. location=OpenApiParameter.QUERY,
  61. required=False,
  62. )
  63. ]
  64. class ModelCreateAPI(APIMixin):
  65. @staticmethod
  66. def get_request():
  67. return ModelCreateRequest
  68. @staticmethod
  69. def get_response():
  70. return ModelCreateResponse
  71. @classmethod
  72. def get_parameters(cls):
  73. return [OpenApiParameter(
  74. name="workspace_id",
  75. description=_("workspace id"),
  76. type=OpenApiTypes.STR,
  77. location=OpenApiParameter.PATH,
  78. required=True,
  79. )]
  80. class GetModelApi(APIMixin):
  81. @staticmethod
  82. def get_query_params_api():
  83. return [OpenApiParameter(
  84. name="workspace_id",
  85. description=_("workspace id"),
  86. type=OpenApiTypes.STR,
  87. location=OpenApiParameter.PATH,
  88. required=True,
  89. ), OpenApiParameter(
  90. name="model_id",
  91. description=_("model id"),
  92. type=OpenApiTypes.STR,
  93. location=OpenApiParameter.PATH,
  94. required=True,
  95. )
  96. ]
  97. @staticmethod
  98. def get_request():
  99. return []
  100. @staticmethod
  101. def get_response():
  102. return ModelCreateResponse
  103. class ModelEditApi(APIMixin):
  104. @staticmethod
  105. def get_request():
  106. return ModelCreateRequest
  107. @staticmethod
  108. def get_response():
  109. return ModelCreateResponse
  110. class DefaultModelResponse(APIMixin):
  111. @staticmethod
  112. def get_response():
  113. return DefaultResultSerializer()