import gradio as gr from sklearn.preprocessing import LabelEncoder import pandas as pd import joblib import os import numpy as np model = joblib.load("nutriscore_model.pkl") labelencoder = joblib.load("labelencoder.pkl") std_scale = joblib.load("std_scale.pkl") cols = ['energy_kcal_100g', 'fat_100g', 'saturated_fat_100g', 'carbohydrates_100g', 'sugars_100g', 'proteins_100g', 'salt_100g'] temp = pd.DataFrame(columns=cols) def greet(energy_kcal_100g, fat_100g, saturated_fat_100g, carbohydrates_100g, sugars_100g, proteins_100g, salt_100g): total = fat_100g + carbohydrates_100g + proteins_100g + salt_100g if total > 100: return "Erreur de saisie : total des informations nutritionnelles pour 100g > 100" if saturated_fat_100g > fat_100g: return 'Erreur de saisie : graisses saturées > graisses' if sugars_100g > carbohydrates_100g: return 'Erreur de saisie : sucres > glucides' else: temp['energy_kcal_100g'] = [energy_kcal_100g] temp['fat_100g'] = [fat_100g] temp['saturated_fat_100g'] = [saturated_fat_100g] temp['carbohydrates_100g'] = [carbohydrates_100g] temp['sugars_100g'] = [sugars_100g] temp['proteins_100g'] = [proteins_100g] temp['salt_100g'] = [salt_100g] X = temp.values temp_scaled = std_scale.transform(temp_scaled) # Make prediction y_pred = model.predict(temp) # reverse label encoding y_pred = labelencoder.inverse_transform(y_pred) return y_pred[0].capitalize() iface = gr.Interface(fn=greet, inputs=["number", "number", "number", "number","number", "number", "number"], outputs="text") iface.launch()