feat: contexto de video, análisis extendido y métricas sociales

- Campo "Contexto del Video" en formulario de análisis (Paso 03)
  → se pasa a GPT-4o para enriquecer el análisis
- 4 nuevos campos de diagnóstico: fortalezas, debilidades,
  sugerencias_mejora, hashtags_sugeridos (click para copiar)
- Vista de detalle: card de métricas sociales (vistas/likes/compartidos
  con engagement rate calculado)
- Muestra contexto original ingresado por el usuario
- Migración SQL 07: 5 nuevas columnas en tabla guiones
- validador.js: 4 nuevos campos en schema Zod
- server.js + api/analizar.js: acepta y guarda contexto_video

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-29 21:44:24 -05:00
parent 2fc4168301
commit be69c0aa48
7 changed files with 173 additions and 11 deletions

View File

@ -111,6 +111,7 @@ app.post('/api/analizar', async (req, res) => {
competidor_referente = false,
vistas = null, likes = null, compartidos = null,
fecha_publicacion = null,
contexto_video = '',
} = req.body
if (!url) return res.status(400).json({ error: 'El campo "url" es requerido' })
@ -135,7 +136,7 @@ app.post('/api/analizar', async (req, res) => {
paso = 'analisis'
console.log(`[3/5] Analizando con GPT-4o...`)
const analisisRaw = await analizarTranscript(transcript, niche, plataforma, duracion)
const analisisRaw = await analizarTranscript(transcript, niche, plataforma, duracion, contexto_video)
paso = 'validacion'
console.log(`[4/5] Validando schema...`)
@ -152,6 +153,7 @@ app.post('/api/analizar', async (req, res) => {
proyecto_nombre, competidor_referente,
url_origen: url, plataforma, duracion_segundos: duracion,
vistas, likes, compartidos, fecha_publicacion,
contexto_video: contexto_video || null,
...analisis,
transcript,
embedding_vector: `[${vector.join(',')}]`,