🤖 LLM-роутинг для RAG-систем: как навести порядок в хаосе документов
Если ты уже работаешь с векторной базой и хочешь, чтобы ответы были точнее и быстрее, тебе нужен многоуровневый роутинг запросов. В этом гайде разберём два рабочих сценария:
Если ты еще не знаком с RAG, то смотри предыдущие гайды:
Зачем нужен Agentic RAG? - https://teletype.in/@moneybeast/5_mmUgwfwgn
Категориальный роутинг в RAG: Пошаговый гайд (ЭТО ПЕРВАЯ ЧАСТЬ ДАННОЙ СТАТЬИ) - https://teletype.in/@moneybeast/Dm6xpsi0I-n
Контекстуализация чанков: как улучшить поиск в векторной базе - https://teletype.in/@moneybeast/XmeBMO9hrbN
🧩 Проблема: поиск как иголка в стоге сена
Когда пользователь задаёт вопрос, ему не важно, что у тебя сотни документов. Он хочет конкретный ответ — быстро и по делу. А LLM, если не ограничить её контекст, начинает шарить по всей базе, выдавая или мусор, или слишком обобщённый ответ.
Решение — роутинг. Подход, который имитирует человеческий способ запроса информации в компании:
Не ищем везде. Сначала уточняем, кому задать вопрос.
🛠️ Сценарий 1: Базовый LLM-роутинг по отделам
Подходит для компаний, в чьих документах есть чёткое разделение по функциям: HR, бухгалтерия, налоги, закупки, IT.
🔁 Общая логика:
- Пользователь задаёт вопрос → первый LLM-агент (роутер) определяет тему.
- В зависимости от темы вопроса — HR, IT и т.д. — выбирается соответствующий промпт и кусок базы.
- Второй LLM-агент ищет уже по узкому контексту.
🔧 Настройка в n8n:
- Нода Chat — точка входа для тестов.
- История пользователя — достаём прошлые сообщения (опционально).
- Промпт для роутера:
- System prompt: "Ты роутер. Определи тему запроса. Возможные направления: HR, IT, бухгалтерия, закупки, налоговая."
- Формат ответа: JSON (например,
{ "topic": "HR" }). - LLM (роутер) — получает промпт + вопрос → возвращает тему.
- Switch — направляет поток в нужную ветку по
topic. - LLM (ответчик) — получает свой узкоспециализированный промпт и даёт финальный ответ.
- Запись в историю — сохраняем результат.
👇 Пример:
Запрос: «Как оформить отпуск?» → роутер определяет HR → далее — vacation → подгружается нужный документ → ответ с конкретным регламентом.
💡 Советы:
- ❗ Не пиши десятки веток вручную. Если используешь базу данных, подгружай нужный промпт динамически.
- ✅ Используй
contains, а неequal, в Switch — это снизит ошибки от запятых и пробелов. - 🧠 Постарайся дать роутеру больше контекста — хотя бы 3–5 предыдущих сообщений.
- 📄 Хорошо оформленный промпт = половина успеха. Не ленись его адаптировать под бизнес-процессы.
Расширенный роутинг с метаданными и множеством LLM
Для сложных систем с документами из разных доменов: медицина, наука, ML, финансы и т.д.
🔍 Задача:
Ограничить поиск не только по теме (HR, IT), но и по предметной области (отпуск, увольнение, регламент пользования техникой и т.д.).
📊 Что используется:
- Два документа в одной векторной коллекции: один по ML, другой по астрофизике.
- Каждый снабжён метаданными:
field: отпускилиfield: увольнение. - Промпт роутера:
Определи домен вопроса: отпускL или увольнение. Ответь в JSON: { "route": "увольнение" } - Выход → Switch: в зависимости от route — подставляется нужное значение в метаданные.
🔗 Как всё работает:
- Пользователь вводит вопрос.
- LLM-роутер → определяет домен.
- Далее — подставляем
metadata.filterв запрос к векторной базе.{ "metadata": { "field": "astrophysics" } } - LLM-агент получает только нужные чанки документов.
- Генерируется ответ.
🤹 Оптимизации и советы:
- Подключи контекст из истории чата — особенно если вопрос из серии «А как насчёт второго варианта?»
- 🚀 Один роутер может управлять всей системой. Главное — заранее продумай структуру тем и метаданных.
💰 Как это всё монетизировать?
- Чат-боты-консультанты для компаний. Реализуй multi-department систему на Make или LangChain.
- Встроенные помощники в B2B SaaS — под каждую роль пользователя можно запускать свои LLM-потоки.
- Автоматизация поддержки — не нужно нагружать саппорт-отделы, бот сам отправит пользователя в нужный «кабинет».
🧠 Вывод: ключ — в сужении скопа
Хороший RAG — это не поиск по всей базе. Это правильное ограничение области.
Сначала определяем тему. Потом предмет. Потом запускаем поиск.
Итог: меньше ложных ответов.