Cron servidor: auto-traducción (Haiku) + TTS (MiniMax) al publicar carta/artículo nuevo en ES #23

Open
opened 2026-06-28 19:12:56 +00:00 by rafa · 0 comments
Owner

Labels: area:infra, improvement

Objetivo

Que Inma (y su asistente Cowork) suban contenido solo en español y el servidor se encargue del resto automáticamente: traducir a EN/FR/IT/PT y generar el audio TTS. Ver docs/guia-publicacion-carta-inma.md §7.

Flujo propuesto

Cron periódico en el servidor que encadene los scripts ya existentes en scripts/:

  1. Detectar cartas/artículos publicados en ES sin traducción → detect_untranslated.php.
  2. Traducir EN/FR/IT/PT y enlazar Polylang → translate_post.py con FEA_ENGINE=haiku (artículo entero, contexto 200k, ~0.6-0.8€/carta). Para carta: --carta <ID>. Tras traducir, arreglar enlaces internos (fix_carta_joomla_links.php) y, al publicar, degradar carta anterior (demote_old_cartasemana.php).
  3. TTS (voz Nico, MiniMax HD) de la carta y sus artículos → minimax_tts.py; enlazar fea_audio_url/fea_audio_done y subir mp3.

Ver detalle de cada paso en la memoria feadulta-ciclo-carta-nueva (pasos 4 y 5).

Consideraciones

  • Idempotente y reanudable: ya lo son los scripts (state en /tmp); el cron debe tolerar reejecución.
  • Cuota MiniMax: ~6 audios por ventana (rc=2056 al agotar, reset en horas; rc=1039 = rate por minuto → pausa FEA_CHUNK_PAUSE). El cron debe encolar y reintentar, no fallar en bloque.
  • Disparador: por ahora cron periódico (p. ej. cada N min) que consulta detect_untranslated.php. Alternativa futura: hook publish_post que encole.
  • Estado borrador vs publicado: decidir si traduce en draft para revisión o directo a publish.
  • API keys: Claude en /home/rafa/portfolio-tracker/.env; MiniMax en /home/rafa/Feadulta/minimax.txt.

Pendiente / no incluido

  • No bloquea la publicación manual de la carta (eso ya funciona vía API REST una vez resuelto el 403 de Cloudflare — ver issue de la API).
  • Programación (cron real) y monitorización se definen al implementar.
**Labels:** area:infra, improvement ## Objetivo Que Inma (y su asistente Cowork) suban contenido **solo en español** y el servidor se encargue del resto automáticamente: traducir a EN/FR/IT/PT y generar el audio TTS. Ver `docs/guia-publicacion-carta-inma.md` §7. ## Flujo propuesto Cron periódico en el servidor que encadene los scripts ya existentes en `scripts/`: 1. **Detectar** cartas/artículos publicados en ES sin traducción → `detect_untranslated.php`. 2. **Traducir** EN/FR/IT/PT y enlazar Polylang → `translate_post.py` con `FEA_ENGINE=haiku` (artículo entero, contexto 200k, ~0.6-0.8€/carta). Para carta: `--carta <ID>`. Tras traducir, arreglar enlaces internos (`fix_carta_joomla_links.php`) y, al publicar, degradar carta anterior (`demote_old_cartasemana.php`). 3. **TTS** (voz Nico, MiniMax HD) de la carta y sus artículos → `minimax_tts.py`; enlazar `fea_audio_url`/`fea_audio_done` y subir mp3. Ver detalle de cada paso en la memoria `feadulta-ciclo-carta-nueva` (pasos 4 y 5). ## Consideraciones - **Idempotente y reanudable**: ya lo son los scripts (state en /tmp); el cron debe tolerar reejecución. - **Cuota MiniMax**: ~6 audios por ventana (rc=2056 al agotar, reset en horas; rc=1039 = rate por minuto → pausa `FEA_CHUNK_PAUSE`). El cron debe encolar y reintentar, no fallar en bloque. - **Disparador**: por ahora cron periódico (p. ej. cada N min) que consulta `detect_untranslated.php`. Alternativa futura: hook `publish_post` que encole. - **Estado borrador vs publicado**: decidir si traduce en `draft` para revisión o directo a `publish`. - **API keys**: Claude en `/home/rafa/portfolio-tracker/.env`; MiniMax en `/home/rafa/Feadulta/minimax.txt`. ## Pendiente / no incluido - No bloquea la publicación manual de la carta (eso ya funciona vía API REST una vez resuelto el 403 de Cloudflare — ver issue de la API). - Programación (cron real) y monitorización se definen al implementar.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: rafa/feadulta#23