File size: 1,882 Bytes
b85acdc efabbb5 b85acdc efabbb5 b85acdc efabbb5 b85acdc efabbb5 b85acdc efabbb5 a06b19d efabbb5 a06b19d efabbb5 |
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 |
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)
|