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)