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