cozinhar / app.py
nia2's picture
Update app.py
4abdea3 verified
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()