tingwu_new
All checks were successful
Deploy to Server / deploy (push) Successful in 1m8s

This commit is contained in:
jeremygan2021
2026-03-11 20:46:25 +08:00
parent f41fd01367
commit 7612c09571
9 changed files with 319 additions and 11 deletions

View File

@@ -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=[