testbed / ai_api /request_serializer.py
xspinners's picture
initial
090987a
from rest_framework import serializers
class TranscriptionRequestSerializer(serializers.Serializer):
url = serializers.URLField(required=False, allow_null=True)
media = serializers.FileField(required=False, allow_null=True)
def validate(self, attrs):
url = attrs.get('url')
media = attrs.get('media')
if not url and not media:
raise serializers.ValidationError("Either 'url' or 'media' must be provided.")
return attrs
def validate_media(self, file):
if file is None:
return file
allowed_types = ['audio/', 'video/']
content_type = getattr(file, 'content_type', '')
if not any(content_type.startswith(t) for t in allowed_types):
raise serializers.ValidationError("Only audio or video files are allowed.")
return file
class ClassificationRequestSerializer(serializers.Serializer):
claim = serializers.CharField()