Spaces:
Running
Running
Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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=
|
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 |
|