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) # Chemin vers le fichier PDF PDF_FILE_PATH = "okoumba-nkoghe-elo_compress.pdf" sample_file = genai.upload_file(PDF_FILE_PATH) def process_input(prompt, image): """Traite le texte et l'image optionnelle et génère une réponse.""" try: content = [sample_file, "\n\n", prompt + " répond en français."] # Ajout de l'image au contenu si elle est fournie if image is not None: img_file = genai.upload_file(image) content.insert(1, img_file) # 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.Textbox(label="Résultat"), title="Mariam elo la fille du soleil", description="Triché !!!! On va encore triché haannnn", examples=[ ["Qui est le personnage principal ?", None], ["Résume moi l'histoire", None] ] ) # Lancement de l'application iface.launch()