Triage local deepseek-r1:8b + canales nuevo (2026-09-13)
Contexto: pedido de correr el triage de surtido con el modelo local
(ollama pull deepseek-r1:8b) y ajustar el set de canales de prueba:
cambiar Aristegui Noticias por Quinto Elemento Lab, y sumar Mother Jones
(lado inglés/EEUU).
Hecho
- deepseek-r1:8b (5.2 GB) bajado y sirviendo en localhost:11434 (M1 Pro 16 GB).
- Corrida de
ingest.pyconLLM_BACKEND=ollama OLLAMA_MODEL=deepseek-r1:8bsobre set de prueba (4 canales × 3 videos,--skip-whisper) → 6 PASA, 1 DUDOSO, 2 SIN_TRANSCRIPCION, 1 RECHAZA, 1 NINGUNA, 1 vacío. - Bug arreglado en
ingest.pytriage(): DeepSeek-R1 a veces responde JSON sin llaveveredicto(o con razonamiento en<thinking>, o{}), lo que tirabaKeyErroren la línea del resumen. Ahora se:- limpian los bloques
<thinking>…</thinking>, - valida que sea objeto JSON,
setdefault("veredicto", "ERROR")para veredictos ausentes/vacíos.
- limpian los bloques
Canales resueltos (channel_id reales, NO estaban en channels.json)
- Quinto Elemento Lab →
UCPmmDeal2PiucQZL330FdOA(MX, humano) - Mother Jones →
UCbWB33FQvFiV0Pq9Calkgzw(EEUU, grande)
Limitaciones vistas (para próximas corridas)
- El scrape de canal (fallback cuando el RSS 404) devuelve videos SIN título (“sin título”) → el triage recibe título vacío y la calidad del veredicto baja. Pendiente: sacar títulos en el scrape o usar otra fuente RSS.
- El veredicto “NINGUNA” y "" (no normalizados) aparecen cuando el modelo no sigue el esquema; triage_rapido/ingest solo los marcan, no los corrigen.
- YouTube bloquea transcripts por IP (IpBlocked) en algún canal (Mother Jones): sin subtítulos y con STT saltado quedan SIN_TRANSCRIPCION descartados.
Cómo re-correr
LLM_BACKEND=ollama OLLAMA_MODEL=deepseek-r1:8b OLLAMA_URL=http://localhost:11434 \
.venv/bin/python ingest.py --channels /tmp/channels_triage.json --limit 3 --skip-whisper \
--out /tmp/candidatas-triage-YYYY-MM-DD.json
O sobre candidatas ya guardadas sin triage: triage_rapido.py (hoy no tenía pendientes).