Beispiel #1
0
def predict_model_data(request):
    all_info = request.GET
    context = {}
    model_id = all_info['model_id']
    input_test_data = all_info['input_test_data']
    input_test_data = [float(x) for x in input_test_data.split(',')]

    model_async_id = MLModel.objects.get(id=model_id).model_async_id

    loaded_model = AsyncResult(model_async_id)
    model_state = loaded_model.state
    if model_state == 'SUCCESS':
        loaded_model = loaded_model.result
        predicted_result = str(loaded_model.predict([input_test_data])[0])
        context['predicted_result'] = predicted_result
        return render(request, 'prediction_result_partial.html', context)
    elif model_state == 'PENDING':
        MLModel.objects.get(id=model_id).delete()
        models = MLModel.objects.filter(
            user__exact=request.user).select_related('user')
        t = loader.get_template('trained_models_partial.html')
        context['t'] = t.render({'models': models})
        context[
            'error'] = 'selected model was expired and removed from database'
        return JsonResponse(context, status=400)
    else:
        MLModel.objects.get(id=model_id).delete()
        models = MLModel.objects.filter(
            user__exact=request.user).select_related('user')
        t = loader.get_template('trained_models_partial.html')
        context['t'] = t.render({'models': models})
        return JsonResponse(context, status=400)