app-deploy / src /streamlit_app.py
jjeampierjs's picture
Update src/streamlit_app.py
e941db3 verified
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}")