This commit is contained in:
@@ -4,5 +4,8 @@ from .models import TranscriptionTask
|
|||||||
class TranscriptionTaskSerializer(serializers.ModelSerializer):
|
class TranscriptionTaskSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TranscriptionTask
|
model = TranscriptionTask
|
||||||
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']
|
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.parsers import MultiPartParser, FormParser, JSONParser
|
||||||
from rest_framework.permissions import AllowAny
|
from rest_framework.permissions import AllowAny
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from drf_spectacular.utils import extend_schema, OpenApiParameter, OpenApiTypes
|
||||||
from .models import TranscriptionTask
|
from .models import TranscriptionTask
|
||||||
from .serializers import TranscriptionTaskSerializer
|
from .serializers import TranscriptionTaskSerializer, TranscriptionUploadSerializer
|
||||||
from .services import AliyunTingwuService
|
from .services import AliyunTingwuService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -57,6 +58,21 @@ class TranscriptionTaskViewSet(viewsets.ModelViewSet):
|
|||||||
serializer_class = TranscriptionTaskSerializer
|
serializer_class = TranscriptionTaskSerializer
|
||||||
parser_classes = (MultiPartParser, FormParser)
|
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):
|
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)
|
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||||
|
|
||||||
@action(detail=True, methods=['get'])
|
@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):
|
def refresh_status(self, request, pk=None):
|
||||||
"""
|
"""
|
||||||
刷新任务状态并获取结果
|
刷新任务状态并获取结果
|
||||||
|
|||||||
Reference in New Issue
Block a user