This commit is contained in:
@@ -7,8 +7,8 @@ from rest_framework.parsers import MultiPartParser, FormParser, JSONParser
|
||||
from rest_framework.permissions import AllowAny
|
||||
from django.conf import settings
|
||||
from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
|
||||
from .models import TranscriptionTask
|
||||
from .serializers import TranscriptionTaskSerializer, TranscriptionUploadSerializer
|
||||
from .models import TranscriptionTask, AIEvaluation
|
||||
from .serializers import TranscriptionTaskSerializer, TranscriptionUploadSerializer, AIEvaluationSerializer
|
||||
from .services import AliyunTingwuService
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -143,6 +143,51 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
||||
logger.error(f"处理上传请求失败: {e}")
|
||||
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
@action(detail=True, methods=['post'])
|
||||
@extend_schema(
|
||||
request={
|
||||
'application/json': {
|
||||
'type': 'object',
|
||||
'properties': {
|
||||
'model_selection': {'type': 'string', 'description': '模型选择'},
|
||||
'prompt': {'type': 'string', 'description': '评分提示词'},
|
||||
}
|
||||
}
|
||||
},
|
||||
responses={200: AIEvaluationSerializer}
|
||||
)
|
||||
def evaluate(self, request, pk=None):
|
||||
"""
|
||||
触发AI评估
|
||||
"""
|
||||
task = self.get_object()
|
||||
|
||||
# 1. 检查或创建 Evaluation 对象
|
||||
evaluation, created = AIEvaluation.objects.get_or_create(task=task)
|
||||
|
||||
# 2. 如果请求中有配置,更新配置
|
||||
model_selection = request.data.get('model_selection')
|
||||
prompt = request.data.get('prompt')
|
||||
|
||||
updated = False
|
||||
if model_selection:
|
||||
evaluation.model_selection = model_selection
|
||||
updated = True
|
||||
if prompt:
|
||||
evaluation.prompt = prompt
|
||||
updated = True
|
||||
|
||||
if updated:
|
||||
evaluation.save()
|
||||
|
||||
# 3. 调用 Service 执行评估
|
||||
from .bailian_service import BailianService
|
||||
service = BailianService()
|
||||
service.evaluate_task(evaluation)
|
||||
|
||||
serializer = AIEvaluationSerializer(evaluation)
|
||||
return Response(serializer.data)
|
||||
|
||||
@action(detail=True, methods=['get'])
|
||||
@extend_schema(
|
||||
parameters=[
|
||||
|
||||
Reference in New Issue
Block a user