Volver a la wiki

Candidatos semánticos en wiki_enrich_related (PR4-b)

Descripción

Mejora del subsistema de candidatos de backlinks en wiki_enrich_related (handler MCP). Reemplaza el algoritmo v1 (basado en tag/type) por un sistema semántico que aprovecha Vectorize (Workers AI) para embedding de textos.

Cambio de estrategia

Antes (v1):

Ahora (v2):

Mecanismo técnico

// Flujo simplificado (functions/api/mcp/handlers/wiki.ts)
const [vec] = await embedTexts(env.AI, [t.title]);
const matches = await searchChunks(env, vec, 18, { sourceType: 'doc' });
// Extrae slugs únicos de wiki/*.md de los matches
const candSlugs = matches
  .map(m => m.sourcePath.match(/wiki\/(.+?)\.md$/)[1])
  .filter(slug => !seen.has(slug) && slugHasActivePage(slug));
// Recupera títulos de bib_wiki_pages para context a Haiku
const candidates = candSlugs.map(slug => ({ slug, title: DB[slug] }));

Cambios de código

Calidad esperada

v1 producía sugerencias similares a: “healthcheck endpoint” → “network widget gadget”, típicamente falsos positivos.

v2 aprovecha embeddings de semántica real: dos páginas sobre “monitoreo de recursos” quedarán relacionadas aunque no compartan tags/palabras exactas.

El autor (@Esquembri) planea comparar outputs en dry-run post-deploy.

Impacto

Véase también

Subir