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 |
|