В серии про enterprise RAG описали диспетчер, который собирает prompt из базового шаблона и фрагментов под конкретный вопрос

В серии Enterprise Document Intelligence вышла вторая часть раздела о генерации ответов в enterprise RAG-системе. В материале разбирается подход, при котором prompt для LLM формируется прямо в момент вызова модели: берется фиксированный BASE-шаблон, а затем к нему добавляются отдельные фрагменты правил, в зависимости от типа вопроса и ожидаемого формата ответа.
Как пишет Towards Data Science, ключевую роль в этой схеме играет dispatcher. Он получает объект ParsedQuestion, через ANSWER_REGISTRY выбирает нужную схему, формирует system prompt и user prompt, вызывает модель и сохраняет полный trace ответа. В user prompt попадают сам вопрос, ключевые слова, а также размеченные строки из найденных фрагментов документов.
Авторы противопоставляют этот подход «mega-prompt», где один системный prompt одновременно обрабатывает даты, суммы, таблицы, списки и свободный текст. По их словам, такая конструкция со временем обрастает условными правилами, становится сложнее в отладке и увеличивает расход токенов. Вариант с отдельными prompt-шаблонами для каждого типа ответа они тоже считают неудобным: приходится дублировать общие ограничения и синхронизировать изменения между шаблонами.
В статье generation описывается как четвертый блок общей архитектуры Enterprise Document Intelligence, наряду с разбором документов, парсингом вопросов и retrieval. Для generation используются части объекта ParsedQuestion, включая expected_answer_shape, generation и keywords. При этом определение типа ответа остается задачей блока question parsing.
Ключевые факты
Dispatcher возвращает три элемента: схему ответа, system prompt и user prompt.
В user prompt включаются вопрос, keywords и размеченные строки passages.
В серии Enterprise Document Intelligence generation описывается как четвертый блок после document parsing, question parsing и retrieval.
Текущая реализация parse_question.py, по описанию авторов, пока содержит только минимальную версию ParsedQuestion.