29 lines
1.7 KiB
Python
29 lines
1.7 KiB
Python
from rest_framework import serializers
|
|
from .models import TranscriptionTask, AIEvaluation, AIEvaluationTemplate
|
|
|
|
class AIEvaluationTemplateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = AIEvaluationTemplate
|
|
fields = ['id', 'name', 'model_selection', 'prompt', 'is_active', 'created_at']
|
|
|
|
class AIEvaluationSerializer(serializers.ModelSerializer):
|
|
template = AIEvaluationTemplateSerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = AIEvaluation
|
|
fields = ['id', 'template', 'score', 'evaluation', 'model_selection', 'prompt', 'reasoning', 'status', 'error_message', 'created_at', 'updated_at']
|
|
|
|
class TranscriptionTaskSerializer(serializers.ModelSerializer):
|
|
ai_evaluations = AIEvaluationSerializer(many=True, read_only=True)
|
|
project_title = serializers.CharField(source='project.title', read_only=True)
|
|
|
|
class Meta:
|
|
model = TranscriptionTask
|
|
fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations', 'project', 'project_title']
|
|
read_only_fields = ['id', 'file_url', 'task_id', 'status', 'transcription', 'summary', 'error_message', 'created_at', 'updated_at', 'transcription_data', 'summary_data', 'auto_chapters_data', 'ai_evaluations', 'project_title']
|
|
|
|
class TranscriptionUploadSerializer(serializers.Serializer):
|
|
file = serializers.FileField(help_text="上传的音频文件", required=False)
|
|
file_url = serializers.URLField(help_text="音频文件的URL地址", required=False)
|
|
project_id = serializers.IntegerField(help_text="关联的参赛项目ID", required=False)
|