This commit is contained in:
@@ -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="上传的音频文件")
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
刷新任务状态并获取结果
|
||||
|
||||
Reference in New Issue
Block a user