gnosticdev commited on
Commit
7e8954f
·
verified ·
1 Parent(s): 1bb4376

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -2
app.py CHANGED
@@ -1,3 +1,4 @@
 
1
  import gradio as gr
2
  import os
3
  import asyncio
@@ -55,13 +56,23 @@ async def generate_dialogue(article_url, text_input, language, skip_llm, custom_
55
  else:
56
  dialogue = converter.extract_conversation(await converter.fetch_text(article_url))
57
 
 
58
  return json.dumps(dialogue, indent=2, ensure_ascii=False), dialogue
59
  except Exception as e:
60
  return f"Error: {str(e)}", None
61
 
62
  async def generate_audio(dialogue_json, language, agregar_musica, custom_music):
63
  try:
64
- dialogue = json.loads(dialogue_json)
 
 
 
 
 
 
 
 
 
65
  config = ConversationConfig()
66
  converter = URLToAudioConverter(config, llm_api_key=os.environ.get("TOGETHER_API_KEY"))
67
 
@@ -95,7 +106,7 @@ with gr.Blocks(theme='gstaff/sketch') as demo:
95
  skip_llm = gr.Checkbox(label="🔴 Modo libre (sin filtros LLM)", value=False)
96
  custom_prompt = gr.Textbox(
97
  label="Prompt personalizado (opcional)",
98
- placeholder="{text}\nCrea un diálogo de podcast en español entre Anfitrión1 y Anfitrión2. Usa un tono informal y genera al menos 6 intercambios por hablante. Devuelve SOLO un objeto JSON: {\"conversation\": [{\"speaker\": \"Anfitrión1\", \"text\": \"...\"}, {\"speaker\": \"Anfitrión2\", \"text\": \"...\"}]}"
99
  )
100
  btn_dialogue = gr.Button("Generar Diálogo", variant="primary")
101
 
 
1
+ ```python
2
  import gradio as gr
3
  import os
4
  import asyncio
 
56
  else:
57
  dialogue = converter.extract_conversation(await converter.fetch_text(article_url))
58
 
59
+ # Usar comillas dobles al mostrar el JSON
60
  return json.dumps(dialogue, indent=2, ensure_ascii=False), dialogue
61
  except Exception as e:
62
  return f"Error: {str(e)}", None
63
 
64
  async def generate_audio(dialogue_json, language, agregar_musica, custom_music):
65
  try:
66
+ # Validar JSON antes de parsear
67
+ json_str = dialogue_json.strip()
68
+ try:
69
+ dialogue = json.loads(json_str)
70
+ except json.JSONDecodeError as e:
71
+ return f"Error: JSON inválido - {str(e)}", None
72
+
73
+ if not dialogue.get("conversation"):
74
+ return "Error: El JSON no contiene 'conversation'", None
75
+
76
  config = ConversationConfig()
77
  converter = URLToAudioConverter(config, llm_api_key=os.environ.get("TOGETHER_API_KEY"))
78
 
 
106
  skip_llm = gr.Checkbox(label="🔴 Modo libre (sin filtros LLM)", value=False)
107
  custom_prompt = gr.Textbox(
108
  label="Prompt personalizado (opcional)",
109
+ placeholder='{text}\nCrea un diálogo de podcast en español entre Anfitrión1 y Anfitrión2. Usa un tono informal y genera al menos 6 intercambios por hablante. Devuelve SOLO un objeto JSON: {"conversation": [{"speaker": "Anfitrión1", "text": "..."}, {"speaker": "Anfitrión2", "text": "..."}]}'
110
  )
111
  btn_dialogue = gr.Button("Generar Diálogo", variant="primary")
112