Commit Graph

6 Commits

Author SHA1 Message Date
d9ba114b84 fix(transcriptor): detectar formato de audio desde Content-Type antes de inferir por URL
El fallback a mp3 causaba que Whisper rechazara archivos mp4/m4a de
plataformas sociales cuya URL no tiene extensión reconocible. Ahora
se prioriza el header Content-Type de la respuesta HTTP, luego la
extensión de la URL, y el fallback final es mp4 en lugar de mp3.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 19:58:51 -05:00
b11d57465e fix: resolver FUNCTION_INVOCATION_FAILED y pipeline de Instagram
- transcriptor: restaurar await toFile() — sin él Whisper recibía una
  Promise en vez del archivo y devolvía 400
- transcriptor: detectar MIME type real (m4a para Instagram, mp3 TikTok)
- analizar: normalizar duración (TikTok→ms, Instagram→s float) a entero
  antes de guardar en Supabase y pasar a GPT-4o
- analizar/server: reemplazar .catch() en insert de error por try/catch —
  el builder de Supabase no expone .catch() directamente; el TypeError
  escapaba al outer catch y causaba FUNCTION_INVOCATION_FAILED en Vercel
- validador: fallback de último recurso en enums cuando GPT-4o devuelve
  valor inválido (ej. "ninguno" para desarrollo_tipo)

Probado end-to-end: Instagram Reel → OK en 27s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 10:57:49 -05:00
4aecbef343 fix: corregir FUNCTION_INVOCATION_FAILED y audio m4a de Instagram
- vercel.json: revertir maxDuration a 60s (300 rompe planes Hobby)
- transcriptor: detectar extensión real del audio (TikTok→mp3,
  Instagram→m4a) para enviar el MIME type correcto a Whisper;
  enviarlo como mp3 cuando es m4a causaba fallo de decodificación

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 10:23:01 -05:00
21cf1c16a5 fix: corregir 4 puntos de falla del pipeline de análisis
- validador: normaliza enums de GPT-4o (acentos, mayúsculas, aliases como
  "ninguno"→"ninguna", "shock"→"declaracion_shock") y coerce strings
  numéricos a enteros antes de validar con Zod
- transcriptor: reintentos automáticos (3 intentos, backoff 1.2s) para
  URLs de CDN inestables; mejor mensaje de error en transcripción vacía
- analizador: captura JSON.parse inválido con mensaje diagnóstico
- vercel.json: aumenta timeout de analizar a 300s y generar a 120s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 09:57:49 -05:00
a453b87c6c fix(backend): replace native File with toFile from openai SDK 2026-04-01 08:24:57 -05:00
7695dd0be6 Initial commit — Sistema Generador de Guiones V4.0
Pipeline completo: URL → Whisper → GPT-4o → pgvector → Supabase
Frontend Vue 3 + Tailwind, Backend Express + Vercel serverless functions
2026-03-28 16:02:59 -05:00