Volver a la wiki

Candidatos semánticos (Vectorize) en wiki_enrich_related

Problema

La versión anterior de wiki_enrich_related extraía candidatos para el campo related[] de una página wiki basándose en similitud de tags o type de página. Este enfoque producía sugerencias tangenciales: dos pages con el mismo tag podían hablar de áreas completamente distintas, generando backlinks débiles que no añadían valor semántico real.

El dry-run confirmó: muchas sugerencias carecían de coherencia temática (ej. dos pages con tag #security pero en dominios no relacionados).

Solución

Implementar búsqueda semántica basada en embeddings:

  1. Embedding del título: el título de la página candidata se convierte a vector mediante embedTexts (Workers AI).
  2. Búsqueda en chunks: se consultan los chunks del corpus wiki (D1, sourceType='doc') usando searchChunks, que devuelve coincidencias ordenadas por similitud coseno.
  3. Deduplicación y filtrado: se extraen los slugs únicos de cada chunk, se validan contra la DB (bib_wiki_pages, solo status='active'), y se mantiene el orden de relevancia.
  4. Validación de candidatos: Haiku elige 2-4 de los candidatos + grounding valida.

Beneficios:

Implementación

Cambios en wikiEnrichRelated

Nueva dependencia

Requiere env.AI binding (Workers AI). Si no está configurado, retorna error 'Workers AI binding not configured (semantic candidates)'.

Funciones auxiliares retiradas

Llamada de integración

wiki_enrich_related se invoca desde:

Retorna lista de candidatos sugeridos + razonamiento (error si falla, ej. search_error:<msg>).

Véase también

Subir