import streamlit as st import requests # Configuración TEXT_ENDPOINT = "https://lrs1lm2jji.execute-api.us-east-1.amazonaws.com/dev/generate" IMAGE_ENDPOINT = "https://lrs1lm2jji.execute-api.us-east-1.amazonaws.com/dev/generate-image" st.set_page_config(page_title="OpenAI App", layout="centered") st.title("🧠 Aplicación IA con OpenAI y Lambda") tab1, tab2 = st.tabs(["Generar Texto", "Generar Imagen"]) with tab1: st.subheader("✍️ Texto Generado por IA") prompt = st.text_area("Escribe tu prompt aquí:", height=150) if st.button("Generar Texto"): if prompt.strip() == "": st.warning("Escribe un prompt primero.") else: with st.spinner("Generando..."): try: res = requests.post(TEXT_ENDPOINT, json={"prompt": prompt}) res.raise_for_status() result = res.json() st.success(f"Respuesta generada con éxito: {res}") if "response" in result: st.text_area("Texto:", value=result["response"], height=300) elif "text" in result: st.text_area("Texto:", value=result["text"], height=300) if "imageUrl" in result: st.image(result["imageUrl"], caption="Imagen generada", use_column_width=True) except Exception as e: st.error(f"Error al generar: {e}") with tab2: st.subheader("🖼️ Imagen Generada por IA") img_prompt = st.text_input("Describe la imagen que deseas:") if st.button("Generar Imagen"): if img_prompt.strip() == "": st.warning("Escribe una descripción primero.") else: with st.spinner("Generando imagen..."): try: st.info("⏳ Enviando solicitud para generar imagen...") st.write("🔍 Prompt enviado:", img_prompt) headers = { "Content-Type": "application/json", "User-Agent": "Python-Requests" } res = requests.post(IMAGE_ENDPOINT, json={"prompt": img_prompt}, headers=headers) st.write("📬 Código de respuesta:", res.status_code) st.write("📦 Respuesta cruda:", res.text) res.raise_for_status() data = res.json() st.write("🧩 JSON recibido:", data) url = data.get("image_url") or data.get("imageUrl") or data.get("url") if url: st.success("✅ Imagen generada:") st.image(url, use_container_width =True) else: st.error("⚠️ No se pudo obtener la URL de imagen.") except Exception as e: st.error(f"❌ Error al generar imagen: {e}")