В продуктовой статье мы уже рассказывали, что умеет AI Budget Assistant: сфотографировать чек, надиктовать трату голосом, спросить у чата совета по бюджету — и всё это без единой таблицы в Excel. Это был взгляд со стороны пользователя. Теперь зайдём со стороны реализации и разберём, как именно здесь применяется искусственный интеллект — и, что не менее важно, что удерживает его от глупостей.
Личные финансы и ИИ — это в первую очередь вопрос доверия. Обычный чат-бот на такую тему легко наговорит лишнего: уверенно назовёт цифру, которой нет, «вспомнит» трату, которой не было, или посоветует то, что к вашему бюджету не относится. Мы строили систему так, чтобы модель работала не в вакууме, а поверх ваших реальных данных, и чтобы вокруг неё было достаточно дисциплины: ключ к ИИ хранится на сервере (а не в приложении), ваши данные подаются модели изолированно от инструкций, а там, где модель не нужна, работают обычные правила и математика — быстрее, дешевле и предсказуемее.
Одна мысль проходит через весь текст: ИИ здесь — это инструмент под контролем, а не оракул. Разберём по порядку, где он применяется, как устроен и где мы сознательно обошлись без него. По дороге — схемы, «причёсанные» для читателя, а не для инженера.
Где здесь ИИ
Приложение — это мобильный клиент (на Expo), а вся «умная» логика живёт на сервере. Клиент никогда не обращается к OpenAI напрямую: он идёт на наш сервер, а тот уже добавляет ключ и нужный контекст и вызывает модель. Так ключ никогда не покидает сервер, а мы можем считать квоты, чистить данные и подставлять контекст в одном месте.
Обратите внимание на два момента. Во-первых, провайдер один — OpenAI; никакой «зоопарк» моделей здесь не нужен. Во-вторых, рядом с ИИ на сервере живёт логика без ИИ — обнаружение аномалий и личный индекс инфляции считаются обычным кодом. К ним мы ещё вернёмся отдельно.
Один ключ, три «скорости» модели
В отличие от систем, где вы приносите собственный ключ, здесь ключ принадлежит сервису. Пользователь же выбирает не провайдера, а «скорость» модели — в настройках, одним переключателем на все текстовые и визуальные функции сразу.
Скоростей три: fast (модель gpt-4o-mini, дешевле), balanced (gpt-4o, по умолчанию) и quality (gpt-4.1, дороже и подробнее). У каждой — свой множитель стоимости, который влияет на то, сколько ИИ-квоты тратит один запрос: на бесплатном тарифе это 5 ИИ-запросов в месяц, и «быстрый» запрос стоит 0,75 единицы, а «качественный» — 1,5. Так пользователь сам управляет балансом «дешевле / умнее», а расходы остаются под контролем. Распознавание голоса стоит особняком: оно всегда идёт через фиксированную модель whisper-1 и в выбор «скорости» не входит.
Чат-ассистент как ai-агент с функциями
Чат — это не просто «поговорить с ботом». Под капотом это ai-агент с 11 функциями (создать расход, добавить доход, и так далее): модель сама решает, ответить текстом или предложить конкретное действие, а выполняет его затем проверенный код на сервере.
Важная деталь — любое изменение данных проходит через подтверждение. Модель не создаёт расход молча: она предлагает действие, а пользователь подтверждает его (или отменяет). А если у участника счёта роль «наблюдатель» (viewer), запись блокируется ещё до того, как действие встанет в очередь, — и в приложении, и в ботах. То есть ИИ здесь помогает заполнять, но не распоряжается вашими данными за вашей спиной.
Что ИИ знает о вас — и защита от инъекций
Чтобы советы были по делу, ассистент получает срез ваших финансов: сколько потрачено за месяц, лимиты по категориям, топ категорий и недавние расходы. Но именно здесь кроется тонкий риск — атака через ваши же данные (prompt injection): если в описании траты спрятана команда для модели, она могла бы «перехватить» инструкции. Мы закрываем это на двух уровнях.
Во-первых, все пользовательские строки (описания трат, названия проектов, тегов, категорий, целей) очищаются перед подстановкой в промпт. Во-вторых, контекст передаётся модели как изолированный блок данных, обёрнутый служебными метками (в духе «--- ДАННЫЕ ПОЛЬЗОВАТЕЛЯ ---» … «--- КОНЕЦ ДАННЫХ ---»), — так модель воспринимает его как данные, а не как инструкции. Даже произвольная подпись к сканируемому чеку ограничена по длине и подаётся как пассивная заметка, а не как команда.
Чек с фотографии: визуальное распознавание
Самый быстрый способ занести трату — сфотографировать чек. Распознаванием занимается модель с визуальным распознаванием (та же, что вы выбрали по «скорости»): она вытягивает из фото позиции, суммы, дату и даже адрес магазина.
Дальше начинается аккуратная работа с деталями. Каждой позиции присваивается каноничное имя товара — это нужно, чтобы потом честно сравнивать цены во времени (об этом ниже). А адрес магазина превращается в точку на карте через открытый сервис геокодирования (OpenStreetMap/Nominatim) — без всякого ИИ, с кэшем и «тихим» поведением при неудаче. Хороший пример того, что не каждую задачу стоит отдавать модели.
Голос: надиктуй расход
Трату можно не печатать, а проговорить. Голосовое сообщение расшифровывает модель whisper-1, после чего текст обрабатывается как обычная фраза — тем же разбором расходов, что и при вводе с клавиатуры. Работает это и в приложении, и в мессенджерах.
ИИ в Telegram и WhatsApp
AI Budget Assistant живёт не только в приложении. У него есть полноценные боты в Telegram и WhatsApp, и — что важно для архитектуры — они переиспользуют одни и те же ИИ-сервисы: тот же чат-агент, ту же расшифровку голоса, то же распознавание чеков. Не три разных «мозга», а один, доступный из разных каналов.
Приятная мелочь: в переписке бот умеет распознать в тексте название счёта и ответить именно по нему, не переключая ваш основной счёт. Достаточно написать что-то вроде «покажи траты в Семья» — и бот поймёт, о каком счёте речь.
Умные подсказки: категории, теги, проекты
Хороший помощник не заставляет всё заполнять руками. Поэтому при вводе траты система предлагает категорию, теги, подходящий проект и даже разбиение суммы по нескольким категориям. Но и здесь модель включается не всегда.
Логика простая и экономная: сначала история. Если похожая трата уже встречалась, подсказка выдаётся мгновенно и без обращения к модели. И только для незнакомых случаев подключается ИИ, а для сопоставления «по смыслу» (например, к какому проекту отнести расход) используются эмбеддинги — векторные представления текста. Так частые операции не тратят ни ИИ-квоту, ни время.
Инсайты, истории и портфель
Поверх ваших данных ИИ умеет не только отвечать на вопросы, но и подмечать закономерности сам. Он собирает инсайт-карточки (куда утекают деньги, что изменилось) и даже нарративные «истории трат» — связный рассказ вместо сухих цифр.
Отдельная история — инвестиционный портфель. Здесь ИИ анализирует состав вложений и выдаёт портфельные инсайты: риск концентрации в одном активе, перекос по типам, отставание от бенчмарка, влияние комиссий и другие сигналы — с понятными порогами «важно / критично». Эта возможность относится к платному тарифу (Pro+), стоит чуть дороже обычного запроса и кэшируется на сутки, чтобы не пересчитывать одно и то же.
Где ИИ намеренно НЕ используется
Это, пожалуй, самый недооценённый раздел. Не всё, что выглядит «умным», должно ходить в модель — иногда обычный код честнее, быстрее и дешевле. У нас так сделаны две заметные вещи.
Обнаружение аномалий работает на четырёх простых правилах, срабатывающих прямо в момент записи траты: всплеск по категории (рост на 30%+ к среднему), подорожавшая подписка (рост цены больше чем на 10%), двойное списание (тот же продавец и сумма в пределах суток) и «похоже на регулярный платёж». Каждый сигнал попадает в ленту с защитой от дублей, а чтобы не надоедать, пушей отправляется не больше трёх в день. Никакой модели — только детерминированные правила, которые всегда срабатывают одинаково.
Личный индекс инфляции — ещё честнее. Он показывает, как меняется стоимость именно вашей «корзины» покупок, и считается обычной математикой (индекс Ласпейреса) по позициям из ваших чеков — без единого обращения к ИИ. Модель здесь участвует лишь косвенно: она когда-то распознала чек, а дальше работает арифметика. Дёшево, прозрачно и воспроизводимо.
Заключение
Если собрать всё вместе, вырисовывается та же простая мысль, что и в наших других продуктах: пользу приносит не «модель побольше», а аккуратная инженерия вокруг неё. ИИ, который работает поверх ваших реальных данных, а не выдумывает их. Ключ, который остаётся на сервере, а не утекает в приложение. Данные, изолированные от инструкций. Подтверждение перед любой записью. И трезвое решение не звать модель туда, где справятся правила и математика.
Именно эта дисциплина превращает разговорчивую модель в помощника, которому можно доверить свой бюджет — и при этом не бояться, что он подрисует вам лишнюю трату. Попробовать AI Budget Assistant можно на ai-budget.pl, в Google Play или собрать самому из исходников на GitHub. А если вам нужен похожий ИИ-помощник, встроенный в ваш продукт и ваши данные, — напишите нам: [email protected].
Какая модель за что отвечает
Напоследок — сводка: какая модель решает какую задачу. Отдельно подчеркнём: обнаружение аномалий и личный индекс инфляции работают без модели — на правилах и математике, поэтому в таблице их нет.
| Задача | Model |
|---|---|
| Текстовые задачи: чат-агент, разбор трат, категории, теги, проекты, разбиение, инсайты, истории, портфель | gpt-4o-mini · gpt-4o · gpt-4.1 |
| Распознавание чеков (визуальное) | gpt-4o-mini · gpt-4o · gpt-4.1 |
| Голос → текст (транскрипция) | whisper-1 |
| Семантические подсказки (проекты, теги) | OpenAI embeddings |