2025-05-07 10:09:45 +00:00
|
|
|
|
# coding=utf-8
|
|
|
|
|
|
"""
|
|
|
|
|
|
@project: MaxKB
|
|
|
|
|
|
@Author:虎
|
|
|
|
|
|
@file: model_apply.py
|
|
|
|
|
|
@date:2024/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'),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
operation_id=_('Vectorization documentation'), # type: ignore
|
2025-05-07 10:09:45 +00:00
|
|
|
|
responses=DefaultModelResponse.get_response(),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
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'),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
operation_id=_('Vectorization documentation'), # type: ignore
|
2025-05-07 10:09:45 +00:00
|
|
|
|
responses=DefaultModelResponse.get_response(),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
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'),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
operation_id=_('Reorder documents'), # type: ignore
|
2025-05-07 10:09:45 +00:00
|
|
|
|
responses=DefaultModelResponse.get_response(),
|
2025-05-09 03:29:05 +00:00
|
|
|
|
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))
|