Docfile commited on
Commit
5ef6ec5
·
verified ·
1 Parent(s): 240d8fd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -19
app.py CHANGED
@@ -1,9 +1,11 @@
1
  import gradio as gr
2
  import google.generativeai as genai
3
  import os
 
4
 
5
  # Configurez l'API Gemini
6
- genai.configure(api_key=os.environ["GEMINI_API_KEY"]) # Remplacez "VOTRE_CLÉ_API" par votre clé API Gemini
 
7
  safety_settings = [
8
  {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
9
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
@@ -12,37 +14,62 @@ safety_settings = [
12
  ]
13
 
14
  # Définissez le modèle
15
- model = genai.GenerativeModel("gemini-2.0-flash-exp",safety_settings=safety_settings)
16
 
17
  # Chemin vers le fichier PDF (assurez-vous qu'il est correct)
18
  PDF_FILE_PATH = "okoumba-nkoghe-elo_compress.pdf"
19
 
 
20
  sample_file = genai.upload_file(PDF_FILE_PATH)
21
- def process_pdf(prompt):
22
- """Traite le fichier PDF local et génère une réponse basée sur l'invite."""
 
 
 
 
 
 
 
 
23
  try:
24
- # Assurez-vous que le fichier PDF existe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
- # Générez le contenu à l'aide du modèle Gemini
27
- result = model.generate_content([
28
- sample_file,
29
- "\n\n",
30
- prompt + " répond en français."
31
- ])
32
-
33
- print(prompt)
34
- #genai.delete_file(sample_file.name)
35
  return result.text
36
  except Exception as e:
37
- return "Une erreur s'est produite : "
38
 
39
- # Créez l'interface Gradio
40
  iface = gr.Interface(
41
- fn=process_pdf,
42
- inputs=gr.Textbox(label="Question", placeholder="Posez une question sur le roman...",lines=4),
 
 
 
 
43
  outputs=gr.Textbox(label="Résultat"),
44
  title="Mariam elo la fille du soleil",
45
- description=" Triché !!!! On va encore triché haannnn "
46
  )
47
 
48
  # Lancez l'application
 
1
  import gradio as gr
2
  import google.generativeai as genai
3
  import os
4
+ from PIL import Image
5
 
6
  # Configurez l'API Gemini
7
+ genai.configure(api_key=os.environ["GEMINI_API_KEY"])
8
+
9
  safety_settings = [
10
  {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
11
  {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
 
14
  ]
15
 
16
  # Définissez le modèle
17
+ model = genai.GenerativeModel("gemini-2.0-flash-exp", safety_settings=safety_settings)
18
 
19
  # Chemin vers le fichier PDF (assurez-vous qu'il est correct)
20
  PDF_FILE_PATH = "okoumba-nkoghe-elo_compress.pdf"
21
 
22
+ # Uploadez le fichier PDF
23
  sample_file = genai.upload_file(PDF_FILE_PATH)
24
+
25
+ def process_input(prompt, image_file=None):
26
+ """
27
+ Traite le fichier PDF et/ou l'image, et génère une réponse basée sur l'invite.
28
+
29
+ :param prompt: La question ou l'invite de l'utilisateur
30
+ :param pdf_file: Le fichier PDF uploadé (optionnel)
31
+ :param image_file: L'image uploadée (optionnelle)
32
+ :return: La réponse générée
33
+ """
34
  try:
35
+ # Préparez les entrées pour le modèle
36
+ contents = []
37
+
38
+ # Ajoutez le PDF s'il est présent
39
+ if sample_file:
40
+ contents.append(sample_file)
41
+ contents.append("\n\n")
42
+
43
+ # Ajoutez l'image si elle est uploadée
44
+ if image_file:
45
+ # Convertissez l'image de Gradio en objet PIL
46
+ pil_image = Image.fromarray(image_file)
47
+ # Convertissez l'image PIL en format compatible avec Gemini
48
+ gemini_image = genai.upload_file(pil_image)
49
+ contents.append(gemini_image)
50
+ contents.append("\n\n")
51
+
52
+ # Ajoutez le texte de l'invite
53
+ contents.append(prompt + " répond en français.")
54
+
55
+ # Générez le contenu
56
+ result = model.generate_content(contents)
57
 
 
 
 
 
 
 
 
 
 
58
  return result.text
59
  except Exception as e:
60
+ return f"Une erreur s'est produite : {str(e)}"
61
 
62
+ # Créez l'interface Gradio avec upload d'images optionnel
63
  iface = gr.Interface(
64
+ fn=process_input,
65
+ inputs=[
66
+ gr.Textbox(label="Question", placeholder="Posez une question sur le roman...", lines=4),
67
+ #gr.File(label="PDF", type="file", visible=False), # PDF est déjà uploadé, donc caché
68
+ gr.Image(label="Image (optionnelle)", type="numpy", optional=True)
69
+ ],
70
  outputs=gr.Textbox(label="Résultat"),
71
  title="Mariam elo la fille du soleil",
72
+ description="Triché !! on va encore triché ohh !!!!"
73
  )
74
 
75
  # Lancez l'application