nia2 commited on
Commit
6462c32
·
verified ·
1 Parent(s): 7b7ad78

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +37 -47
app.py CHANGED
@@ -1,48 +1,38 @@
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 (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)}."
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()
 
1
+ from transformers import AutoFeatureExtractor, AutoModel
 
 
2
  from PIL import Image
3
+ import torch
4
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
5
+
6
+ # Charger le modèle de vision par ordinateur
7
+ model_name = "google/efficientnet-b0"
8
+ feature_extractor = AutoFeatureExtractor.from_pretrained(model_name)
9
+ model = AutoModel.from_pretrained(model_name)
10
+
11
+ # Charger et prétraiter l'image
12
+ image_path = "path/to/your/image.jpg"
13
+ image = Image.open(image_path)
14
+ inputs = feature_extractor(images=image, return_tensors="pt")
15
+
16
+ # Passer l'image à travers le modèle
17
+ with torch.no_grad():
18
+ outputs = model(**inputs)
19
+
20
+ # Extraire les caractéristiques de l'image
21
+ features = outputs.last_hidden_state.mean(dim=1)
22
+
23
+ # Charger le modèle de génération de texte
24
+ model_name = "t5-small"
25
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
26
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
27
+
28
+ # Convertir les caractéristiques de l'image en texte
29
+ input_text = "Generate a recipe based on the following image features: " + str(features.tolist())
30
+ inputs = tokenizer(input_text, return_tensors="pt")
31
+
32
+ # Générer la recette
33
+ with torch.no_grad():
34
+ outputs = model.generate(**inputs)
35
+
36
+ # Décoder la recette générée
37
+ recipe = tokenizer.decode(outputs[0], skip_special_tokens=True)
38
+ print(recipe)