import gradio as gr import google.generativeai as genai import os # Configuration de l'API Gemini genai.configure(api_key=os.environ["GEMINI_API_KEY"]) safety_settings = [ {"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT", "threshold": "BLOCK_NONE"}, {"category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_NONE"}, ] # Définition du modèle model = genai.GenerativeModel("gemini-2.0-flash-exp", safety_settings=safety_settings) # Chargement de tous les fichiers PDF du dossier "data" DATA_FOLDER = "data" pdf_files = [ os.path.join(DATA_FOLDER, file) for file in os.listdir(DATA_FOLDER) if file.lower().endswith(".pdf") ] uploaded_files = [genai.upload_file(pdf_file) for pdf_file in pdf_files] def process_input(prompt, image): """Traite le texte et l'image optionnelle et génère une réponse.""" try: # Préparer le contenu en ajoutant tous les fichiers PDF content = uploaded_files.copy() # Si une image est fournie, l'ajouter au contenu if image is not None: img_file = genai.upload_file(image) content.append(img_file) # Ajout du prompt avec l'instruction de répondre en français content.append("\n\n") content.append(prompt + " répond en français.") # Génération du contenu result = model.generate_content(content) print(prompt) return result.text except Exception as e: return f"Une erreur s'est produite : {str(e)}" # Création de l'interface Gradio iface = gr.Interface( fn=process_input, inputs=[ gr.Textbox(label="Question", placeholder="Posez une question sur le roman...", lines=4), gr.Image(label="Image (facultative)", type="filepath") ], outputs=gr.Markdown(label="Résultat"), title="Mariam eco", description="Triché !!!! On va encore triché haannnn", examples=[ ["Cest quoi un mass media", None], ["Cest quoi l'entrepreneuriat", None] ] ) # Lancement de l'application iface.launch()