Spaces:
Sleeping
Sleeping
File size: 2,976 Bytes
eb447f2 e941db3 eb447f2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | 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}")
|