def predict()

in api/views.py [0:0]


    def predict(self, request, format=None):

        try:
            classifier = self.request.query_params.get("classifier")
            region = self.request.query_params.get("dataset", "german")
            version = self.request.query_params.get("version", "0.0.1")
            status = self.request.query_params.get("status", "production")

            print(request)

            if version is None:
                raise bad_request(
                    request=request,
                    data={
                        "error": "Missing required query parameter: version"
                    })
            if classifier is None:
                raise bad_request(
                    request=request,
                    data={
                        "error": "Missing required query parameter: classifier"
                    })

            if classifier in [
                    'manova', 'linearRegression', 'polynomialRegression'
            ]:
                prediction = stat_score(request.data, classifier)
                algorithm = None

            else:
                algorithm: Algorithm = Algorithm.objects.filter(
                    classifier=classifier,
                    status=status,
                    version=version,
                    dataset__name=region)[0]

                if algorithm is None:
                    raise bad_request(
                        request=request,
                        data={"error": "ML algorithm is not available"})
                classifier = registry.classifiers[algorithm.id]
                prediction = classifier.compute_prediction(request.data)

            if "label" in prediction:
                label = prediction["label"]
            else:
                label = prediction['method']

            prediction_request = PredictionRequest(input=json.dumps(
                request.data),
                                                   response=prediction,
                                                   prediction=label,
                                                   feedback="",
                                                   algorithm=algorithm)
            prediction_request.save()

            prediction["request_id"] = prediction_request.id

            return Response(prediction)
        except Exception as e:
            raise APIException(str(e))