Query Rewriting
Reescribir la pregunta para mejorar la búsqueda y la respuesta
¿Para qué sirve?
La acción Query Rewriting toma el mensaje del usuario y lo reescribe con un LLM antes de usarlo para la búsqueda RAG o para la respuesta. Así frases coloquiales o referencias vagas (“el segundo”, “esa opción”) se convierten en una consulta explícita que el RAG y el LLM pueden usar para devolver la información correcta.
Características principales
- Puedes usar un modelo específico para reescritura (configurable por bot).
- El historial reciente de la conversación se usa como contexto para reescribir mejor (por ejemplo, para saber a qué “segundo” o “esa” se refiere el usuario).
- La intención “query_rewriting” suele tener sus propias frases y antipatrones para decidir cuándo reescribir.
Configuración en el dashboard
En la intención eliges la acción Query Rewriting. Opcionalmente puedes configurar un modelo distinto para esta tarea y definir las frases que activan esta intención (p. ej. “buscar”, “qué dice sobre…”, “información de”).
Flujo en el sistema
Usuario escribe → se detecta la intención de query rewriting → se llama al LLM con el mensaje y el historial → se obtiene la frase reescrita → esa frase se usa como consulta para el RAG (si hay búsqueda) y/o para el contexto del LLM que genera la respuesta.
Ejemplo: cuando el bot da una lista y el usuario pide “información del segundo”
Imagina que el bot acaba de responder con una lista de opciones, por ejemplo: “Tenemos: 1) Plan Básico, 2) Plan Pro, 3) Plan Empresas.” Y el usuario escribe: “quiero información del segundo” o “cuéntame más de la segunda opción”. Sin reescritura, el RAG recibiría literalmente “información del segundo” y no podría buscar bien en tu base de conocimiento, porque allí no hay una entrada que diga “el segundo”. Con Query Rewriting, el LLM toma el mensaje del usuario y el historial (donde está la lista), y genera una frase reescrita como “información del Plan Pro” o “qué incluye el Plan Pro”. Esa frase reescrita es la que se usa para buscar en el RAG y para que el LLM responda. Así el usuario obtiene datos concretos sobre la opción que quiso, no una respuesta genérica.