¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cuándo no usar la generación con recuperación

Después de esta lección: Puedo decir cuándo la recuperación es la herramienta equivocada.

Lección de 60 min3 comandosLaboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

Un buscador para unas normas de una página

La generación aumentada con recuperación es una herramienta con coste, y a veces es la equivocada. Añade división en trozos, vectores y una búsqueda que puede perder la respuesta.

Un club de ciclismo tiene una página de normas. Una estudiante construye un sistema de recuperación entero para ella. La página cabía en el prompt, y ahora lo que puede fallar es la búsqueda.

Al final de esta lección

Nota

Puedo decir cuándo la recuperación es la herramienta equivocada.

Palabras clave

PalabraQué significaEjemplo
Ventana de contextolo máximo que un modelo lee de una vez
Tokenun trocito de texto que cuenta un modelounos 3/4 de palabra
Presupuestolo máximo de tokens que decides gastar
Datos en directohechos que cambian cada pocos minutos
Recuperaciónencontrar los trozos que responden a una pregunta

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La recuperación es un trueque, no una costumbre

La recuperación deja a un modelo usar más texto del que cabe en un prompt. Esa es su ventaja.

Cuesta trabajo y añade riesgo. Hay que dividir, construir vectores y ajustar una búsqueda. La búsqueda puede devolver el trozo equivocado, o ninguno, y entonces la respuesta se construye con el texto equivocado. Si puedes evitarla, evítala.

Un documento pequeño cabe entero en el prompt

Un modelo lee una cantidad limitada de texto a la vez: su ventana de contexto. El texto se cuenta en tokens. En inglés, un token es aproximadamente tres cuartos de palabra; en español, algo menos. Es una regla práctica, no una cuenta exacta.

Elige un presupuesto de tokens para el contexto. Si el documento entero está por debajo, ponlo todo. No hay nada que buscar, así que nada que perder.

Ejemplo resuelto: seis casos y sus métodos

CasoMétodoPor qué
Unas normas de una páginaPrompt enteroCaben, así que no hay nada que buscar
Un manual de 40.000 palabrasRecuperaciónEs demasiado grande: busca los trozos que importan
El total de las multas de 17 librosCalcular en códigoUn modelo puede fallar en aritmética
El retraso del próximo autobúsConsulta en directoCambia cada minuto, así que un almacén se queda viejo
Un reglamento de 3 páginas que casi nadie consultaPrompt enteroCabe y el coste extra es pequeño
La intranet de una universidad, miles de páginasRecuperaciónNingún prompt puede contenerla

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Mide un documento frente a un presupuesto

El siguiente script guarda las normas del club de ciclismo y cuenta las palabras. Pasa de palabras a tokens con la regla práctica y compara con un presupuesto de 3000.

Hace lo mismo con un manual de 40.000 palabras, usando solo el número, y luego construye el prompt entero para las normas. No llama a ningún modelo.

Escribe el script del presupuesto, parte 1

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const rules = \"Las salidas parten a las 9:00 del viejo molino. Todo ciclista lleva casco. Un grupo tiene como máximo 12 ciclistas y un responsable. El responsable marca el ritmo y espera en cada cruce. Hacen falta luces en toda salida que acabe después de la puesta de sol. La cuota es de 20 euros al año. Un invitado puede venir a dos salidas antes de pagar. Se cancela la salida si hay hielo o lluvia fuerte, y el responsable avisa a todos antes de las 7:00. Nadie se queda atrás. Cuenta cualquier caída al responsable el mismo día.\";' '// Regla práctica: un token es aproximadamente tres cuartos de palabra. Es una regla burda.' 'function tokensFor(words) { return Math.round(words * 4 / 3); }' 'const BUDGET = 3000;' > whole.js"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Escribe el script del presupuesto, parte 2

Comando
docker exec -w /home/node/project agent sh -c "printf '%s\n' 'const documents = [' '  { name: \"Normas del club\", words: rules.split(\" \").length },' '  { name: \"Manual de la biblioteca\", words: 40000 },' '];' 'documents.forEach(function (one) {' '  const need = tokensFor(one.words);' '  const verdict = need <= BUDGET ? \"cabe entero\" : \"necesita recuperación\";' '  console.log(one.name + \": \" + one.words + \" palabras, unos \" + need + \" tokens, \" + verdict);' '});' 'const prompt = \"Responde solo con las normas del club.\n\n\" + rules + \"\n\nPregunta: ¿Cuántos ciclistas puede haber como máximo en un grupo?\";' 'console.log(\"El prompt entero tiene\", prompt.length, \"caracteres. No hace falta buscar.\");' >> whole.js"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejecútalo y lee los veredictos

Comando
docker exec -w /home/node/project agent node whole.js

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lo que muestra

LíneaQué indica
Normas del club: 97 palabras, unos 129 tokens, cabe enteroMuy por debajo del presupuesto
Manual de la biblioteca: 40000 palabras, unos 53333 tokens, necesita recuperaciónMuy por encima
El prompt entero tiene 626 caracteresLo bastante pequeño para enviarlo tal cual

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un error frecuente

Advertencia

Mucha gente cree que la recuperación es siempre mejor que meter el documento en el prompt. Si el documento cabe, la recuperación añade una búsqueda que puede perder la respuesta. Úsala cuando haga falta, no porque suene avanzada.

Sobre este laboratorio y su código: Laboratorio de agente de programación con IA: usa opencode para explicar y corregir código, y comprueba su trabajo

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.