import streamlit as st import os import google.generativeai as genai from dotenv import load_dotenv import fitz load_dotenv() GEMINI_API_KEY = os.getenv("GEMINI_API_KEY") genai.configure(api_key=GEMINI_API_KEY) MODEL_NAME = "gemini-2.5-pro-exp-03-25" def generate_response(user_input): try: model = genai.GenerativeModel(MODEL_NAME) response = model.generate_content(user_input) return response.text if response else "No se recibió respuesta." except Exception as e: return f"Error en la generación de contenido: {str(e)}" def extract_text_from_pdf(pdf_file): try: doc = fitz.open(stream=pdf_file.read(), filetype="pdf") text = "\n".join([page.get_text() for page in doc]) return text if text else "No se pudo extraer texto del PDF." except Exception as e: return f"Error al leer el PDF: {str(e)}" st.set_page_config(page_title="Generador con Gemini API", layout="centered") st.title("Chat con Gemini API") user_input = st.text_area("Escribe algo:", "") uploaded_file = st.file_uploader("📄 O sube un PDF", type=["pdf"]) if st.button("Generar respuesta"): if uploaded_file: st.write("⏳ Extrayendo texto del PDF...") extracted_text = extract_text_from_pdf(uploaded_file) st.text_area("📄 Texto extraído:", extracted_text, height=200) user_input = extracted_text # Usar el texto extraído para la consulta if user_input: st.write("⏳ Procesando con Gemini...") response = generate_response(user_input) st.subheader("🔹 Respuesta de Gemini:") st.write(response) else: st.warning("⚠️ Ingresa un texto o sube un PDF antes de continuar.")