| Tipo | Se parece a… | Qué necesita de verdad |
|---|---|---|
| Factual | «¿Cuál es la política de vacaciones?» | Precisión y chunks que se sostengan solos. Poco contexto, bien elegido |
| Relacional | «¿Cómo se relaciona ventas con marketing?» | Las conexiones, no los fragmentos: es donde el grafo gana |
| Exploratorio | «Cuéntame sobre el proceso de onboarding» | Amplitud: más contexto y de más sitios |
| Comparativo | «¿Qué diferencia hay entre el plan básico y el premium?» | Traer los dos lados, y comprobar que están los dos |
Puestos así se ve que no compiten por la misma mejora. Una consulta factual con un chunk ambiguo falla por falta de contexto; una exploratoria con tres chunks precisos falla por falta de amplitud. Aplicarles la misma configuración garantiza que una de las dos salga mal.
El router clasifica la consulta con una llamada al modelo y elige una configuración. La forma que propone el material —una tabla de perfiles, no una cadena de condicionales— es la parte reutilizable:
FACTUAL → contextual ✓ grafo ✗ parent-child ✗ self-rag ✓ k=3
RELACIONAL → contextual ✗ grafo ✓ parent-child ✗ self-rag ✗ k=5
EXPLORATORIO → contextual ✓ grafo ✓ parent-child ✓ self-rag ✗ k=7
COMPARATIVO → contextual ✗ grafo ✓ parent-child ✗ self-rag ✓ k=6
Dos decisiones de esa tabla merecen leerse despacio, porque son las que enseñan el criterio:
| Decisión | Por qué |
|---|---|
| Self-RAG en factual y comparativo, no en exploratorio | Una pregunta factual tiene una respuesta correcta: verificarla es barato y útil. Una exploratoria no tiene un «está fundamentada» claro |
| K creciente de 3 a 7 según amplitud | El número de chunks no es una constante del sistema: es una propiedad de la pregunta |
Esa segunda es la que más rinde de todo el módulo y no cuesta nada implementarla: K variable según el tipo de consulta mejora casi cualquier RAG sin añadir ninguna técnica avanzada.
Clasificar cuesta una llamada extra al modelo en cada consulta. Parece que suma, y lo que hace es restar: evita ejecutar las técnicas caras donde no aportan. Un sistema que aplica Contextual RAG, grafo, parent-child y Self-RAG a todo paga los cuatro costes siempre; uno con router paga la clasificación y, de media, uno o dos.
Hay una versión aún más barata que la del material y que conviene probar antes: clasificar sin LLM. Muchas consultas se pueden enrutar con reglas —longitud, presencia de dos entidades, si empieza por «cuál» o por «cuéntame»— y reservar la llamada al modelo para las que las reglas no resuelvan. Es menos elegante y quita la llamada extra del camino crítico.
// el router no añade coste: decide dónde no gastarloY una advertencia que el propio material subraya y conviene repetir: no implementes Graph RAG si tu dominio no tiene entidades claras, y no acumules técnicas «por si acaso». Cada una añade complejidad, coste y una forma nueva de fallar. La versión buena de este módulo no es la que usa las cinco: es la que usa dos y sabe por qué.
FACTUAL como valor por defecto — así que una
respuesta ambigua se enruta como factual, que es la configuración más estrecha (k=3): el modo de
fallo es recuperar de menos, y en una consulta exploratoria eso produce una respuesta pobre
sin ninguna señal de que se clasificó mal. Dos: el router de la guía se queda en imprimir la
configuración elegida — no ejecuta ninguna de las estrategias, así que el «sistema
multi-estrategia» del ejercicio integrador es, en realidad, solo el clasificador. ¿Qué medirías
para saber si tu router acierta, teniendo en cuenta que su error no se ve en los logs sino en la
calidad de la respuesta?
Coge cien consultas reales de tu sistema —del log, de soporte, de donde sea— y clasifícalas a mano en los cuatro tipos. Una tarde aburrida.
El reparto te dice qué construir. Si el 80 % son factuales, tu inversión está en que los chunks se sostengan solos y en verificar la fundamentación, y todo lo demás es literatura. Si hay un bloque grande de relacionales, entonces sí merece la pena mirar el grafo. Y si no puedes clasificar una parte, ese montón es el hallazgo: son las consultas que tu sistema hoy responde por casualidad.