В чате с RAG можно не только спросить «как настроить Docker», но и попросить «покажи статистику по разделам» или «сколько книг у каждого автора» — и получить таблицу или график прямо в ответе. Такой сценарий объединяет естественный язык, данные из базы и визуализацию. В этой статье — как от формулировки запроса пользователь приходит к готовой диаграмме в интерфейсе.
На бэкенде это часто сводится к цепочке «намерение → безопасный SQL» (Text2SQL) или к готовому API отчёта; в логах полезно помечать такие ответы тегом вроде chart / analytics.
Примеры запросов
Пользователь пишет на естественном языке, например:
- «Тренд добавления книг по годам» — ожидается линейный график или таблица по годам.
- «Сколько книг у каждого автора» — таблица или столбчатая диаграмма: автор и количество.
- «Распределение по разделам», «bar chart по разделам» — столбчатая диаграмма по разделам.
- «Круговая диаграмма по типам записей» — круговая (pie) по категориям.
Система распознаёт такие запросы как аналитические (intent: аналитика) и направляет их не в обычный поиск по документам, а в контур, который умеет выполнять запросы к данным и строить по ним визуализации.
Что происходит под капотом
Запрос на естественном языке преобразуется в структурированный запрос к данным (например, SQL). Выполняется выборка: агрегации по разделам, авторам, годам и т.д. Результат передаётся в модуль визуализации, который выбирает тип графика (линейный, столбчатый, круговой) в зависимости от запроса и структуры данных. В чат возвращаются и краткий текстовый ответ, и готовая таблица или интерактивный график (например, на Chart.js или аналоге), которые отображаются в интерфейсе сообщения.
Что видит пользователь
В ответе сообщения появляется блок с таблицей (строки и колонки) или с диаграммой — столбчатой, линейной или круговой. При необходимости отображаются подписи осей, легенда, заголовок. Пользователь может скопировать данные или сделать скриншот; в части систем поддерживается экспорт в CSV или обновление графика при уточнении запроса.
Вывод: Аналитические запросы в чате проходят путь «вопрос → распознавание намерения → запрос к данным → визуализация → вывод в чат». Формулируйте запрос явно (тренд, распределение, сколько по категориям), чтобы получить таблицу или нужный тип графика.