UnisKB/apps/models_provider/views/model_apply.py

58 lines
2.5 KiB
Python
Raw Normal View History

2025-05-07 10:09:45 +00:00
# coding=utf-8
"""
@project: MaxKB
@Author
@file model_apply.py
@date2024/8/20 20:38
@desc:
"""
from urllib.request import Request
from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import extend_schema
from rest_framework.views import APIView
from common.auth.authentication import has_permissions
from common.constants.permission_constants import PermissionConstants
from common.result import result
from models_provider.api.model import DefaultModelResponse
from models_provider.serializers.model_apply_serializers import ModelApplySerializers
class ModelApply(APIView):
class EmbedDocuments(APIView):
@extend_schema(methods=['POST'],
summary=_('Vectorization documentation'),
description=_('Vectorization documentation'),
operation_id=_('Vectorization documentation'), # type: ignore
2025-05-07 10:09:45 +00:00
responses=DefaultModelResponse.get_response(),
tags=[_('Model')] # type: ignore
2025-05-07 10:09:45 +00:00
)
2025-06-05 10:39:35 +00:00
def post(self, request: Request, model_id):
2025-05-07 10:09:45 +00:00
return result.success(
ModelApplySerializers(data={'model_id': model_id}).embed_documents(request.data))
class EmbedQuery(APIView):
@extend_schema(methods=['POST'],
summary=_('Vectorization documentation'),
description=_('Vectorization documentation'),
operation_id=_('Vectorization documentation'), # type: ignore
2025-05-07 10:09:45 +00:00
responses=DefaultModelResponse.get_response(),
tags=[_('Model')] # type: ignore
2025-05-07 10:09:45 +00:00
)
2025-06-05 10:39:35 +00:00
def post(self, request: Request, model_id):
2025-05-07 10:09:45 +00:00
return result.success(
ModelApplySerializers(data={'model_id': model_id}).embed_query(request.data))
class CompressDocuments(APIView):
@extend_schema(methods=['POST'],
summary=_('Reorder documents'),
description=_('Reorder documents'),
operation_id=_('Reorder documents'), # type: ignore
2025-05-07 10:09:45 +00:00
responses=DefaultModelResponse.get_response(),
tags=[_('Model')] # type: ignore
2025-05-07 10:09:45 +00:00
)
2025-06-05 10:39:35 +00:00
def post(self, request: Request, model_id):
2025-05-07 10:09:45 +00:00
return result.success(
ModelApplySerializers(data={'model_id': model_id}).compress_documents(request.data))