import gradio as gr import google.generativeai as genai from yolov5 import YOLOv5 from PIL import Image # Configurez votre clé API genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M") # Chargez le modèle Gemini Pro gemini_model = genai.GenerativeModel('gemini-pro') # Charger le modèle de détection YOLOv5 yolo_model_path = "yolov5s.pt" yolo_model = YOLOv5(yolo_model_path, device="cpu") # Fonction de détection d'ingrédients def detect_ingredients(image): results = yolo_model.predict(image) ingredients = results.pandas().xyxy[0]['name'].tolist() return ingredients # Fonction de génération de recettes def generate_recipe(ingredients): # Ajoutez une indication dans le prompt pour générer la réponse en français prompt = f"Créer une recette en français en utilisant les ingrédients suivants (si ingrédients supplémentaire, preciser qu'ils ne sont présents sur la photo) et seulement une recette, rien de plus. Il faut que les ingrédients soient commestibles et que la recette soit légale. Lorsqu'une demande est tordue ou interdite, répond : Mais ça va pas ou quoi là...? : {', '.join(ingredients)}." response = gemini_model.generate_content(prompt) return response.text # Interface Gradio def process_image(image): # Ouvrir l'image depuis le chemin fourni image = Image.open(image) ingredients = detect_ingredients(image) recipe = generate_recipe(ingredients) return f"Ingrédients détectés : {', '.join(ingredients)}\n\nRecette générée :\n{recipe}" # Mise à jour de l'interface Gradio iface = gr.Interface( fn=process_image, inputs=gr.Image(type="filepath"), # Permet le téléchargement d'image depuis la galerie outputs="text", title="Générateur de Recettes par Ingrédients", description="Téléchargez une image d'ingrédients pour générer une recette.", ) # Lancer l'application if __name__ == "__main__": iface.launch()