From d7f9d7ed8b5a0f607dfd4442d84e395b05adecb2 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Wed, 11 Mar 2026 14:43:06 +0800 Subject: [PATCH] tingwu_new --- backend/ai_services/serializers.py | 7 +++++-- backend/ai_services/views.py | 24 +++++++++++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/backend/ai_services/serializers.py b/backend/ai_services/serializers.py index 773134c..336fae4 100644 --- a/backend/ai_services/serializers.py +++ b/backend/ai_services/serializers.py @@ -4,5 +4,8 @@ from .models import TranscriptionTask class TranscriptionTaskSerializer(serializers.ModelSerializer): class Meta: model = TranscriptionTask - fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at'] - read_only_fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at'] + fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'score', 'evaluation'] + read_only_fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'score', 'evaluation'] + +class TranscriptionUploadSerializer(serializers.Serializer): + file = serializers.FileField(help_text="上传的音频文件") diff --git a/backend/ai_services/views.py b/backend/ai_services/views.py index 9ac6620..26e6230 100644 --- a/backend/ai_services/views.py +++ b/backend/ai_services/views.py @@ -6,8 +6,9 @@ from rest_framework.response import Response 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 +from .serializers import TranscriptionTaskSerializer, TranscriptionUploadSerializer from .services import AliyunTingwuService logger = logging.getLogger(__name__) @@ -57,6 +58,21 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet): serializer_class = TranscriptionTaskSerializer parser_classes = (MultiPartParser, FormParser) + @extend_schema( + request={ + 'multipart/form-data': { + 'type': 'object', + 'properties': { + 'file': { + 'type': 'string', + 'format': 'binary' + } + }, + 'required': ['file'] + } + }, + responses={201: TranscriptionTaskSerializer} + ) def create(self, request, *args, **kwargs): """ 上传音频文件并创建听悟转写任务 @@ -113,6 +129,12 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet): return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) @action(detail=True, methods=['get']) + @extend_schema( + parameters=[ + OpenApiParameter("id", OpenApiTypes.UUID, OpenApiParameter.PATH, description="Task ID"), + ], + responses={200: TranscriptionTaskSerializer} + ) def refresh_status(self, request, pk=None): """ 刷新任务状态并获取结果