Pregúntale al manual de la lavadora

Quince páginas de manual a la izquierda, un asistente a la derecha. «Me ha dado F11» y te dice qué mirar, en qué orden y de qué página lo ha sacado. El PDF se descarga de esta web y se convierte en texto dentro de tu navegador: no sube a ningún servidor.

El manual es de una marca inventada (Nordika W-70), escrito a propósito para este caso: así cada respuesta se puede comprobar contra el papel. Este documento tiene ~37.000 caracteres y aquí se envían ~6.200 como mucho, así que primero busca el buscador y después responde el modelo. Y lo importante: esto es un ejemplo curado. No hay una herramienta general que haga que un modelo de 2 GB responda así; lo consigue el curado del documento, del buscador, del prompt y de la comprobación, que es justo lo que puedes medir aquí cambiando al montaje «genérico».

    Qué es exactamente el montaje «genérico» (y por qué está aquí)

    No existe una herramienta general que haga que un modelo de 2 GB responda bien sobre un manual. Lo que ves en esta página funciona por el curado: del documento, del buscador, del prompt y de la comprobación. Para no pedirte que te lo creas, el montaje genérico está aquí mismo, con el mismo modelo y el mismo presupuesto de contexto, y se puede pasar la batería en los dos. El genérico es el montaje mínimo que hace cualquiera antes de curar nada; no es un producto concreto ni una caricatura:

    • Trocea el texto en bloques fijos de 900 caracteres, sin respetar títulos, párrafos ni filas de tabla: una fila de la tabla de programas puede quedar partida en dos.
    • Elige los trozos por cuántas palabras de la pregunta contienen. Sin sinónimos («abro» no encuentra «apertura»), sin refuerzo para códigos (F11 vale lo mismo que «lavadora»), sin partir la pregunta en dos apartados, sin arrastrar el trozo vecino.
    • Envía los trozos con su número de página y el prompt «Eres un asistente útil. Responde a la pregunta del usuario usando el documento que se te da». Nada de citar, nada de «si no está escrito, no existe».
    • Sin segunda pasada ni comprobador. Lo que dice el modelo, se queda.

    Qué se curó en este caso, y por qué eso es el trabajo

    • El documento. pdf.js extrae el texto con sus coordenadas; con eso se rehacen las líneas, se quitan los pies de página repetidos, se detectan las tablas por alineación de columnas y se recomponen las partidas entre hojas. Cada fragmento conserva su apartado y su página: es lo que permite que el modelo cite y que tú lo compruebes.
    • El buscador. Léxico (BM25), sin embeddings ni segundo modelo, pero afinado para un manual: las tablas se indexan por fila con su cabecera (la respuesta a «¿cuánto dura el Rápido 30?» estaba en la tabla y no entraba), los códigos como F11 o SP-142 pesan triple, una tabla corta de sinónimos cruza «abro» con «apertura», y una pregunta con dos partes se reparte el presupuesto entre los dos apartados. Determinista, en milisegundos, y cada fragmento dice por qué ha entrado.
    • El prompt. Escrito para este manual, no para «documentos»: cada afirmación técnica con su página, ninguna pieza ni plazo que no esté literalmente en los fragmentos, responder la parte que sí está y decir con exactitud qué falta, y no usar «no lo encuentro» como salida fácil. Cada regla está ahí porque una versión sin ella falló en la batería: en un manual de verdad, una causa inventada es una reparación cara.
    • La comprobación. La segunda pasada (el mismo modelo revisando su borrador con los fragmentos delante) solo entra cuando el borrador da señal de problema, y un comprobador determinista la veta si añade texto, poda una salvedad verdadera, cita una página que no se le dio o hace desaparecer un dato que sí estaba. Está medida, no asumida: sin ese veto, la revisión empeoraba al modelo pequeño. Las cifras exactas están en la pestaña «Batería», calculadas del JSON medido.
    • La prueba. Dieciocho preguntas cuya respuesta está escrita en el manual, comprobadas por datos y no por impresión. Las columnas «(ref)» se midieron antes de publicar con llama.cpp sobre los GGUF indicados, con este mismo conversor, buscador, prompt y comprobador; el JSON dice modelo, flags, cuantizado, equipo, temperatura y pasadas. Y la columna «genérico» es el mismo modelo sin nada de lo anterior: la diferencia entre las dos es lo que vale el curado.
    • Lo que no hace. Un PDF escaneado sin capa de texto no entra (aquí no hay OCR; en un montaje en tu máquina, sí); una pregunta sin ninguna palabra en común con el manual no encuentra fragmento; y «qué hace la lavadora cuando el agua no entra» sufre más que «F11». Las preguntas que cruzan dos apartados lejanos (garantía + dureza del agua) son las que más cuestan a todos los tamaños de modelo.
    • Privacidad. Los modelos del navegador comparten descarga con /ia-local (misma caché del mismo origen: lo que ya bajaste no vuelve a bajar), el PDF se convierte en tu máquina y la página no llama a ningún puerto ni servidor: no hay modo «conectar con mi servidor local» a propósito.

    Este manual lo curé yo para poder enseñarlo. El tuyo será un PDF de 200 páginas con otro vocabulario, otras tablas y otras preguntas que importan. El trabajo es el mismo: trocear tus documentos como hay que trocearlos, un buscador que entienda tus códigos y cifras, un prompt escrito para tu caso, una batería de preguntas con respuesta comprobable y el modelo elegido por medida, no por catálogo. Todo en tu máquina.