Традиционный процесс анализа данных через ИИ часто превращается в рутину: пользователю приходится вручную выгружать Excel-файлы, прикреплять их к чату и каждый раз объяснять модели структуру столбцов. Чтобы разорвать этот цикл, была разработана архитектура, позволяющая модели самостоятельно подключаться к живым данным, обеспечивая точность вычислений и полную приватность внутри корпоративного периметра.
Выбор стека: локальные модели и протокол MCP
Для соблюдения требований безопасности и исключения передачи чувствительной информации через внешние API было решено использовать открытые модели, запускаемые на собственном оборудовании. В качестве основы была выбрана модель Gemma4 от Google, развернутая через Ollama. Этот инструмент позволяет поднять локальный сервер с OpenAI-совместимым API одной командой, что упрощает интеграцию с любыми клиентами.
Вместо классического подхода RAG (Retrieval-Augmented Generation), который работает с текстовыми фрагментами и может ошибаться в цифрах, был выбран протокол Model Context Protocol (MCP). В отличие от поиска по смыслу, MCP предоставляет модели набор инструментов для прямого вызова функций. Это позволяет ИИ самостоятельно запрашивать схему данных и получать точные агрегаты, а не «правдоподобно звучащий» текст.
Интеграция с OLAP-кубами через XLTable
В качестве источника данных выступил XLTable — семантический слой над ClickHouse, который предоставляет доступ к готовым кубам (измерениям и мерам) вместо сырых таблиц. Для связи модели с данными используется MCP-сервер, предоставляющий следующие инструменты:
- list_databases() — получение списка доступных каталогов кубов;
- list_cubes(database) — просмотр списка кубов в базе;
- describe_cube(database, cube) — изучение схемы куба (измерений и мер);
- query_cube(database, context) — выполнение агрегирующего запроса с группировкой и фильтрацией.
От чата к автономному агенту
Первичная проверка концепции проводилась в десктопном приложении AnythingLLM. Связка «Ollama + Gemma4 + MCP-сервер XLTable» успешно подтвердила жизнеспособность архитектуры: модель смогла видеть инструменты и отвечать на вопросы по данным. Однако тестирование выявило ограничения интерфейса чата.
Для полноценной работы требуется переход от формата простого собеседника к формату агента. Основные задачи будущего решения включают развитие способности ИИ самостоятельно выстраивать цепочки вызовов (от уточнения схемы до построения дашбордов), гибкую настройку системных промптов для контроля точности и возможность генерации визуальных артефактов прямо в ответе.
