Каждый день десятки точек заказчика отчитываются: что приготовили, что выдали сотрудникам, что списали. Тонны цифр, которые вручную сводил отдельный аналитик. Он искал закономерности и готовил рекомендации по меню. Ручной труд — это медленно, субъективно и дорого. К тому же он плохо масштабируется при росте сети.
Собственник поставил задачу прямо: «Сделайте так, чтобы анализ делали нейросети». На старте задача выглядела простой: берём таблицу, загружаем в модель, спрашиваем — получаем ответ. Но первая же попытка показала, что такой подход не работает.
Выбрали российскую модель ГигаЧат, взяли облегчённую версию — разницы со старшей на наших задачах не нашли и не стали переплачивать. Но модель не умела работать с таблицами напрямую. Данные приходилось передавать огромными текстовыми «портянками».
Критичной оказалась другая проблема. У любой нейросети есть предел памяти на запрос. У ГигаЧата заявлено 200 тысяч токенов — примерно 150 страниц текста. На практике модель перегружалась гораздо раньше: путала столбцы, придумывала цифры, выдавала блюда, которых нет в меню. На запрос «какие блюда пора убрать» отвечала уверенно и гладко — но полностью мимо реальных данных.
Ошибка в одной цифре списания, помноженная на десятки точек сети, превращается в системные убытки. Мы пытались уйти от человеческого фактора, а получили его с новой стороны — теперь уже от нейросети.
Переломный момент наступил, когда руководитель команды поставил диагноз: «Нейросеть — не база данных и не калькулятор. Данные должен обрабатывать код. Модель получает только готовые цифры». С этого момента задача перестала быть «давайте спросим у ИИ» и превратилась в «давайте построим архитектуру».

Главный принцип новой архитектуры: нейросеть не видит сырые данные. Вместо этого она получает набор «кнопок» — строгих серверных функций. «Посчитать остатки», «найти самые списываемые позиции», «сравнить выдачу и потребление». Нейросеть решает, на какую кнопку нажать и с какими параметрами. А весь расчёт выполняет код на сервере. Галлюцинациям здесь негде взяться: цифры считает код, модель лишь упаковывает точный результат в человекочитаемый ответ.
По сути, мы превратили ИИ из «думающего элемента» в интерфейс — как голосовой помощник, который понимает речь и нажимает кнопки вместо вас.
Решение строилось в четыре этапа.
Этап 1. Изоляция данных. Таблица загружается в оперативную память сервера заказчика. Все расчёты идут через строгие алгоритмы — быстро и предсказуемо. Нейросеть не «читает» таблицу, не держит её в уме, не пытается запомнить. Никаких текстовых портянок на десятки тысяч токенов. Модель оперирует короткими запросами и получает короткие точные ответы. Данные не покидают контур заказчика.
Этап 2. Инструменты вызова: нейросеть как менеджер, а не счетовод. Ключевая механика — набор серверных функций с чётким описанием. Нейросеть «дёргает» нужную, когда требуются данные. Пользователь пишет: «Какие блюда нам стоит убрать из меню за последнюю неделю?» Модель анализирует текст и понимает: чтобы ответить, нужны данные по списаниям за неделю. Она выбирает подходящий инструмент и вызывает его с параметрами — даты, фильтр по списаниям. Сервер выполняет строгий запрос к таблице и возвращает точные цифры. Модель получает готовый результат и облекает его в ответ: «За последнюю неделю чаще всего списывались суп харчо и рыбные котлеты. Рекомендую исключить их из меню». Цифры посчитал код, ИИ выступил интерфейсом к строгим алгоритмам.
Этап 3. Двойная система инструкций. Даже с инструментами нейросети нужны правила. Мы сделали два слоя. Системная инструкция задаётся один раз и объясняет глобальную роль: «Ты — аналитик данных, работаешь строго с цифрами, которые вернули функции, не додумываешь, не фантазируешь. Если данных недостаточно — скажи прямо». Инструкция-напоминание отправляется с каждым запросом: «Отвечай кратко, только на основе данных, ничего не добавляй от себя».
Отдельно стоит отметить, как мы писали эти инструкции. Сначала разработчик делал это вручную — получалось длинно и с двусмысленностями. Тогда он использовал одну нейросеть, чтобы она сформулировала инструкцию для другой. Результат оказался лучше ручного: структурнее, точнее, без воды. Машина объяснила машине задачу эффективнее, чем человек. Этот приём мы теперь применяем и в других проектах.
Этап 4. Страховка: финальное решение за человеком. Стопроцентной точности не обещает никто — это технологически невозможно при работе с человеческим языком и деловым контекстом. Поэтому мы встроили ручную проверку прямо в интерфейс прототипа. Пользователь видит исходный запрос, ответ модели и может точечно скорректировать результат: поправить название блюда, уточнить цифру, переформулировать рекомендацию. Финальное решение принимает человек. Машина убирает рутину и исключает ошибки на этапе обработки цифр, но ответственность остаётся на операторе.

Работающий прототип создан за 2–3 недели силами двух разработчиков. Заказчик загружает отчёт, задаёт вопрос на русском языке и получает рекомендацию за минуты вместо часов ручного труда.
Главный показатель, за которым мы следили — стоимость запроса. Чем меньше токенов расходует модель, тем быстрее ответ и дешевле эксплуатация.
До внедрения мы отправляли таблицу целиком: 30–100 тысяч токенов на запрос. Модель перегружалась и всё равно ошибалась. После перехода на новую архитектуру типовой запрос сократился до 1,5–3 тысяч токенов, максимальный зафиксированный — 15 тысяч. Сокращение стоимости в 3–20 раз.
Машина не устаёт, не фантазирует и не ошибается в цифрах. Данные не покидают контур заказчика. Финальное решение остаётся за человеком.

Собранный технологический кубик полностью универсален. Чтобы перенести его в другую отрасль, достаточно настроить набор инструментов под новую предметную область. Задача «есть множество таблиц от разных источников, нужно задавать к ним вопросы на естественном языке и получать точные ответы» встречается в рознице, логистике, финансах и на производстве.
Главные уроки проекта. Не стоит верить заявленным пределам памяти нейросети — сбои могут начаться гораздо раньше. Не нужно переплачивать за старшие версии моделей — на табличных задачах разницы между Lite, Pro и Max может не быть. Нейросеть пишет инструкции для другой нейросети лучше человека — структурнее, точнее, без двусмысленностей. Инструменты вызова — это стандартный подход, который мы нащупали в этом проекте и теперь тиражируем на другие отрасли.
Ключевой принцип: нейросеть — отличный интерфейс, но цифры должен считать код. Мы не обещаем чудес. Мы обещаем архитектуру, в которой модель не врёт в цифрах, потому что цифры считает не она.