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)