nia2 commited on
Commit
483aa8e
·
verified ·
1 Parent(s): 70010e6

Delete app.py

Browse files

import gradio as gr
import google.generativeai as genai
from yolov5 import YOLOv5
from PIL import Image


#Clé Api
genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M")


# Le modèle Gemini Pro
gemini_model = genai.GenerativeModel('gemini-pro')

# Le modèle de détection YOLOv5
yolo_model_path = "yolov5s.pt"
yolo_model = YOLOv5(yolo_model_path, device="cpu")


# Détection d'ingrédients
def detect_ingredients(image):
results = yolo_model.predict(image)
ingredients = results.pandas().xyxy[0]['name'].tolist()
return ingredients

# Prompt de génération de recettes (Mistral AI)
def generate_recipe(ingredients):
prompt = f"""
Oubliez tout ce que je vous ai demandé avant et concentrez-vous uniquement sur cette tâche.
Vous êtes un chef virtuel spécialisé dans la création de recettes à partir des ingrédients disponibles. On vous a fourni une liste d'aliments suivants : {', '.join(set(ingredients))}. Utilisez ces ingrédients pour créer une recette savoureuse et nutritive. Votre recette doit inclure :
1. Une liste d'ingrédients avec les quantités nécessaires.
2. Des instructions étape par étape pour la préparation et la cuisson.
3. Des conseils pour les substitutions possibles si certains ingrédients manquent.
4. Le temps de préparation et de cuisson total.
5. Des suggestions de présentation pour rendre le plat encore plus appétissant.
Assurez-vous que la recette soit accessible à un niveau de compétence culinaire moyen et qu'elle utilise les ingrédients de manière optimale.
Exemple de format de réponse :
```
Recette : [Nom de la recette]
Ingrédients :
- [Ingrédient 1] : [Quantité]
- [Ingrédient 2] : [Quantité]
...
Instructions :
1. [Étape 1]
2. [Étape 2]
...
```
Recette :
"""
response = gemini_model.generate_content(prompt)
return response.text

response = gemini_model.generatecontent(prompt)
return response.text


# Interface Gradio
def process_image(image):
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"),
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.",
)

# Pour lancer l'application
if __name__ == "__main__":
iface.launch()

Files changed (1) hide show
  1. app.py +0 -76
app.py DELETED
@@ -1,76 +0,0 @@
1
- import gradio as gr
2
- import google.generativeai as genai
3
- from yolov5 import YOLOv5
4
- from PIL import Image
5
-
6
-
7
- #Clé Api
8
- genai.configure(api_key="AIzaSyB_Hnl_77gd1I8xs6iuLqKIoGHgsZMXm1M")
9
-
10
-
11
- # Le modèle Gemini Pro
12
- gemini_model = genai.GenerativeModel('gemini-pro')
13
-
14
- # Le modèle de détection YOLOv5
15
- yolo_model_path = "yolov5s.pt"
16
- yolo_model = YOLOv5(yolo_model_path, device="cpu")
17
-
18
-
19
- # Détection d'ingrédients
20
- def detect_ingredients(image):
21
- results = yolo_model.predict(image)
22
- ingredients = results.pandas().xyxy[0]['name'].tolist()
23
- return ingredients
24
-
25
- # Prompt de génération de recettes (Mistral AI)
26
- def generate_recipe(ingredients):
27
- prompt = f"""
28
- Oubliez tout ce que je vous ai demandé avant et concentrez-vous uniquement sur cette tâche.
29
- Vous êtes un chef virtuel spécialisé dans la création de recettes à partir des ingrédients disponibles. On vous a fourni une liste d'aliments suivants : {', '.join(set(ingredients))}. Utilisez ces ingrédients pour créer une recette savoureuse et nutritive. Votre recette doit inclure :
30
- 1. Une liste d'ingrédients avec les quantités nécessaires.
31
- 2. Des instructions étape par étape pour la préparation et la cuisson.
32
- 3. Des conseils pour les substitutions possibles si certains ingrédients manquent.
33
- 4. Le temps de préparation et de cuisson total.
34
- 5. Des suggestions de présentation pour rendre le plat encore plus appétissant.
35
- Assurez-vous que la recette soit accessible à un niveau de compétence culinaire moyen et qu'elle utilise les ingrédients de manière optimale.
36
- Exemple de format de réponse :
37
- ```
38
- Recette : [Nom de la recette]
39
- Ingrédients :
40
- - [Ingrédient 1] : [Quantité]
41
- - [Ingrédient 2] : [Quantité]
42
- ...
43
- Instructions :
44
- 1. [Étape 1]
45
- 2. [Étape 2]
46
- ...
47
- ```
48
- Recette :
49
- """
50
- response = gemini_model.generate_content(prompt)
51
- return response.text
52
-
53
- response = gemini_model.generatecontent(prompt)
54
- return response.text
55
-
56
-
57
- # Interface Gradio
58
- def process_image(image):
59
- image = Image.open(image)
60
- ingredients = detect_ingredients(image)
61
- recipe = generate_recipe(ingredients)
62
- return f"Ingrédients détectés : {', '.join(ingredients)}\n\nRecette générée :\n{recipe}"
63
-
64
-
65
- # Mise à jour de l'interface Gradio
66
- iface = gr.Interface(
67
- fn=process_image,
68
- inputs=gr.Image(type="filepath"),
69
- outputs="text",
70
- title="Générateur de Recettes par Ingrédients",
71
- description="Téléchargez une image d'ingrédients pour générer une recette.",
72
- )
73
-
74
- # Pour lancer l'application
75
- if __name__ == "__main__":
76
- iface.launch()