AlexFocus commited on
Commit
efabbb5
·
1 Parent(s): b48127a
Files changed (3) hide show
  1. app.py +47 -13
  2. app_old.py +21 -0
  3. app_story.py +0 -55
app.py CHANGED
@@ -1,21 +1,55 @@
1
  import gradio as gr
 
 
2
 
3
- def letter_counter(word, letter):
4
- """Cuenta cuántas veces aparece una letra en una palabra."""
5
- return word.lower().count(letter.lower())
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  demo = gr.Interface(
8
- fn=letter_counter,
9
- inputs=["text", "text"],
10
- outputs="number",
11
- title="Letter Counter",
12
- description="Cuenta cuántas veces aparece una letra"
 
 
 
 
13
  )
14
 
15
- if __name__ == "__main__":
16
- demo.launch(
17
- mcp_server=True
18
- )
19
-
20
 
 
21
 
 
 
 
1
  import gradio as gr
2
+ from openai import OpenAI
3
+ from config import OPENAI_API_KEY
4
 
5
+ # Inicializar cliente de OpenAI
6
+ client = OpenAI(api_key=OPENAI_API_KEY)
 
7
 
8
+ def generate_story(tema, personaje, estilo):
9
+ """Genera una historia usando GPT-5-Nano."""
10
+ if not tema or not personaje:
11
+ return "Por favor, proporciona al menos un tema y un personaje."
12
+
13
+ prompt = (
14
+ f"Escribe una historia {estilo.lower()} sobre '{tema}' "
15
+ f"con el personaje principal '{personaje}'. "
16
+ "La historia debe tener entre 100 y 200 palabras."
17
+ )
18
+
19
+ try:
20
+ response = client.responses.create(
21
+ model="gpt-5-nano",
22
+ input=[
23
+ {"role": "system", "content": "Eres un escritor creativo que genera historias interesantes y entretenidas."},
24
+ {"role": "user", "content": prompt}
25
+ ],
26
+ )
27
+ # historia = response.choices[0].message.content.strip()
28
+ historia = getattr(response, "output_text", "")
29
+ return historia
30
+ except Exception as e:
31
+ return f"Error al generar la historia: {str(e)}"
32
+
33
+ # Interfaz con Gradio
34
  demo = gr.Interface(
35
+ fn=generate_story,
36
+ inputs=[
37
+ gr.Textbox(label="Tema", placeholder="Ej: Un viaje a la luna"),
38
+ gr.Textbox(label="Personaje", placeholder="Ej: Un astronauta curioso"),
39
+ gr.Textbox(label="Estilo", placeholder="Ej: Aventura, comedia, terror...")
40
+ ],
41
+ outputs="text",
42
+ title="Generador de Historias con GPT-5-Nano",
43
+ description="Introduce un tema, un personaje y un estilo. GPT-5-Nano generará una historia entre 100 y 200 palabras."
44
  )
45
 
46
+ def try_generate_story():
47
+ tema = "Un viaje a la luna"
48
+ personaje = "Un astronauta curioso"
49
+ estilo = "Aventura"
50
+ return generate_story(tema, personaje, estilo)
51
 
52
+ # print(try_generate_story())
53
 
54
+ if __name__ == "__main__":
55
+ demo.launch(mcp_server=True)
app_old.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ def letter_counter(word, letter):
4
+ """Cuenta cuántas veces aparece una letra en una palabra."""
5
+ return word.lower().count(letter.lower())
6
+
7
+ demo = gr.Interface(
8
+ fn=letter_counter,
9
+ inputs=["text", "text"],
10
+ outputs="number",
11
+ title="Letter Counter",
12
+ description="Cuenta cuántas veces aparece una letra"
13
+ )
14
+
15
+ if __name__ == "__main__":
16
+ demo.launch(
17
+ mcp_server=True
18
+ )
19
+
20
+
21
+
app_story.py DELETED
@@ -1,55 +0,0 @@
1
- import gradio as gr
2
- from openai import OpenAI
3
- from config import OPENAI_API_KEY
4
-
5
- # Inicializar cliente de OpenAI
6
- client = OpenAI(api_key=OPENAI_API_KEY)
7
-
8
- def generate_story(tema, personaje, estilo):
9
- """Genera una historia usando GPT-5-Nano."""
10
- if not tema or not personaje:
11
- return "Por favor, proporciona al menos un tema y un personaje."
12
-
13
- prompt = (
14
- f"Escribe una historia {estilo.lower()} sobre '{tema}' "
15
- f"con el personaje principal '{personaje}'. "
16
- "La historia debe tener entre 100 y 200 palabras."
17
- )
18
-
19
- try:
20
- response = client.responses.create(
21
- model="gpt-5-nano",
22
- input=[
23
- {"role": "system", "content": "Eres un escritor creativo que genera historias interesantes y entretenidas."},
24
- {"role": "user", "content": prompt}
25
- ],
26
- )
27
- # historia = response.choices[0].message.content.strip()
28
- historia = getattr(response, "output_text", "")
29
- return historia
30
- except Exception as e:
31
- return f"Error al generar la historia: {str(e)}"
32
-
33
- # Interfaz con Gradio
34
- demo = gr.Interface(
35
- fn=generate_story,
36
- inputs=[
37
- gr.Textbox(label="Tema", placeholder="Ej: Un viaje a la luna"),
38
- gr.Textbox(label="Personaje", placeholder="Ej: Un astronauta curioso"),
39
- gr.Textbox(label="Estilo", placeholder="Ej: Aventura, comedia, terror...")
40
- ],
41
- outputs="text",
42
- title="Generador de Historias con GPT-5-Nano",
43
- description="Introduce un tema, un personaje y un estilo. GPT-5-Nano generará una historia entre 100 y 200 palabras."
44
- )
45
-
46
- def try_generate_story():
47
- tema = "Un viaje a la luna"
48
- personaje = "Un astronauta curioso"
49
- estilo = "Aventura"
50
- return generate_story(tema, personaje, estilo)
51
-
52
- # print(try_generate_story())
53
-
54
- if __name__ == "__main__":
55
- demo.launch(mcp_server=True)