Volver a la wiki

retrieve: Búsqueda unificada con estimación de tokens

Firma

export async function retrieve(
  env: Env,
  queryVec: number[],
  topK: number,
  opts: RetrieveOpts,
  filters?: SearchFilters,
): Promise<RetrievalResult>

Propósito

Búsqueda vectorial + trimming opcional. Devuelve chunks (recortados si activo) + estimaciones de tokens antes/después, para que consumidores (harness A/B, endpoints) midan ahorro sin lógica duplicada.

Parámetros

Output

interface RetrievalResult {
  chunks: ChunkMatch[];
  tokensInContext: number;    // post-trim
  tokensBefore: number;       // raw chunks
}

Lógica

  1. Búsqueda base: searchChunks(env, queryVec, topK, filters) → raw chunks.
  2. Estimar tokens raw: estimateTokens(raw) → palabras × 1.3.
  3. Si opts.trim && env.AI: trimChunksBySentence(...) → chunks recortados.
  4. Estimar tokens trimmed: estimateTokens(chunks).
  5. Return con ambas estimaciones.

Fuentes de datos

Véase también

Subir