News Silo — pipeline de siloing de noticias (opencode)
Fecha: 2026-09-17
Qué es
Pipeline local de agrupación de noticias por evento/tema, invocable nativamente desde opencode mediante una skill. Embeddings semánticos + HDBSCAN. Sin GPU ni API externa.
Ubicación
- Script:
~/nef/news-silo/silo.py(lee JSON por stdin, escribe JSON por stdout) - Entorno:
~/nef/news-silo/.venv(uv, Python 3.12) - Ejemplo:
~/nef/news-silo/sample.json - Skill:
~/.config/opencode/skill/news-silo/SKILL.md
Decisiones clave
- Modelo default:
Qwen/Qwen3-Embedding-0.6B(multilingüe, CPU-friendly).all-MiniLM-L6-v2descartado: es inglés y agrupó mal noticias en español (mezcló “tasas de interés” con “visita a Chile”). - Algoritmo: HDBSCAN (cosine). No requiere fijar K (los eventos diarios son desconocidos) y marca outliers/ruido como label -1.
- Python 3.12 vía uv: Python 3.14 del sistema no tiene wheels de torch.
- Por qué skill y no plugin: la skill es lo más simple y confiable en opencode; el agente ejecuta el script con bash y orquesta el resto.
Uso
cat datos.json | ~/nef/news-silo/.venv/bin/python ~/nef/news-silo/silo.py
Parámetros: --model, --min-cluster-size (default 2), --epsilon (default 0.3),
-o out.json.
Siguientes pasos (cuando haga falta)
- Subir a
Qwen/Qwen3-Embedding-8Bsi la calidad multilingüe no alcanza. - Migrar a store de vectores si el volumen/streaming crece.
- Añadir dedup MinHash LSH para la fase de ingestión (ref: proyecto “chronicle”).