mcp-test1 / app.py
AlexFocus's picture
1
efabbb5
import gradio as gr
from openai import OpenAI
from config import OPENAI_API_KEY
# Inicializar cliente de OpenAI
client = OpenAI(api_key=OPENAI_API_KEY)
def generate_story(tema, personaje, estilo):
"""Genera una historia usando GPT-5-Nano."""
if not tema or not personaje:
return "Por favor, proporciona al menos un tema y un personaje."
prompt = (
f"Escribe una historia {estilo.lower()} sobre '{tema}' "
f"con el personaje principal '{personaje}'. "
"La historia debe tener entre 100 y 200 palabras."
)
try:
response = client.responses.create(
model="gpt-5-nano",
input=[
{"role": "system", "content": "Eres un escritor creativo que genera historias interesantes y entretenidas."},
{"role": "user", "content": prompt}
],
)
# historia = response.choices[0].message.content.strip()
historia = getattr(response, "output_text", "")
return historia
except Exception as e:
return f"Error al generar la historia: {str(e)}"
# Interfaz con Gradio
demo = gr.Interface(
fn=generate_story,
inputs=[
gr.Textbox(label="Tema", placeholder="Ej: Un viaje a la luna"),
gr.Textbox(label="Personaje", placeholder="Ej: Un astronauta curioso"),
gr.Textbox(label="Estilo", placeholder="Ej: Aventura, comedia, terror...")
],
outputs="text",
title="Generador de Historias con GPT-5-Nano",
description="Introduce un tema, un personaje y un estilo. GPT-5-Nano generará una historia entre 100 y 200 palabras."
)
def try_generate_story():
tema = "Un viaje a la luna"
personaje = "Un astronauta curioso"
estilo = "Aventura"
return generate_story(tema, personaje, estilo)
# print(try_generate_story())
if __name__ == "__main__":
demo.launch(mcp_server=True)