from rest_framework import serializers class ImageClassifierSerializer(serializers.Serializer): image = serializers.ImageField(required=False) image_url = serializers.URLField(required=False) model = serializers.ChoiceField( choices=['pytorch', 'tensorflow'], default='pytorch' ) def validate(self, data): if not data.get('image') and not data.get('image_url'): raise serializers.ValidationError("Provide either 'image' or 'image_url'.") return data class ClassificationResultSerializer(serializers.Serializer): predicted_class = serializers.CharField() model_used = serializers.CharField() confidence = serializers.FloatField() all_probabilities = serializers.ListField(child=serializers.DictField())