File size: 811 Bytes
d32e728
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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())