Spaces:
Sleeping
Sleeping
| 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.") | |