Spaces:
Sleeping
Sleeping
Create app.py
#1
by
nia2
- opened
app.py
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import google.generativeai as genai
|
3 |
+
from yolov5 import YOLOv5
|
4 |
+
from PIL import Image
|
5 |
+
|
6 |
+
# Configurez votre clé API
|
7 |
+
genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M")
|
8 |
+
|
9 |
+
# Chargez le modèle Gemini Pro
|
10 |
+
gemini_model = genai.GenerativeModel('gemini-pro')
|
11 |
+
|
12 |
+
# Charger le modèle de détection YOLOv5
|
13 |
+
yolo_model_path = "yolov5s.pt"
|
14 |
+
yolo_model = YOLOv5(yolo_model_path, device="cpu")
|
15 |
+
|
16 |
+
# Fonction de détection d'ingrédients
|
17 |
+
def detect_ingredients(image):
|
18 |
+
results = yolo_model.predict(image)
|
19 |
+
ingredients = results.pandas().xyxy[0]['name'].tolist()
|
20 |
+
return ingredients
|
21 |
+
|
22 |
+
# Fonction de génération de recettes
|
23 |
+
def generate_recipe(ingredients):
|
24 |
+
# Ajoutez une indication dans le prompt pour générer la réponse en français
|
25 |
+
prompt = f"Créer une recette en français en utilisant les ingrédients suivants : {', '.join(ingredients)}. La recette doit être claire et détaillée, en mentionnant les étapes de préparation et les ingrédients nécessaires. Si des ingrédients supplémentaires sont nécessaires, précisez qu'ils ne sont pas présents sur la photo. La réponse doit contenir uniquement la recette, sans autres informations."
|
26 |
+
response = gemini_model.generate_content(prompt)
|
27 |
+
return response.text
|
28 |
+
|
29 |
+
# Interface Gradio
|
30 |
+
def process_image(image):
|
31 |
+
# Ouvrir l'image depuis le chemin fourni
|
32 |
+
image = Image.open(image)
|
33 |
+
ingredients = detect_ingredients(image)
|
34 |
+
recipe = generate_recipe(ingredients)
|
35 |
+
return f"Ingrédients détectés : {', '.join(ingredients)}\n\nRecette générée :\n{recipe}"
|
36 |
+
|
37 |
+
# Mise à jour de l'interface Gradio
|
38 |
+
iface = gr.Interface(
|
39 |
+
fn=process_image,
|
40 |
+
inputs=gr.Image(type="filepath"), # Permet le téléchargement d'image depuis la galerie
|
41 |
+
outputs="text",
|
42 |
+
title="Générateur de Recettes par Ingrédients",
|
43 |
+
description="Téléchargez une image d'ingrédients pour générer une recette.",
|
44 |
+
)
|
45 |
+
|
46 |
+
# Lancer l'application
|
47 |
+
if __name__ == "__main__":
|
48 |
+
iface.launch()
|