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.") | |