Все кейсы

Кейс · ppFIT · 2026

Дневник питания, который заполняется сам

ppFIT — это ИИ-ассистент, которому пишешь, что съел, а он сам ведёт дневник калорий, воды и веса. Ниже — как он устроен и какие решения пришлось принять, чтобы цифрам в нём можно было верить.

Роль:
всё, от идеи до деплоя
Год:
2026, бета в продакшне
Где:
веб, Telegram Mini App, бот
Открыть ppFIT
Экран «Сегодня» в ppFIT
Глава 01

Проблема не в калориях, а в рутине

Все трекеры питания устроены одинаково: найди продукт в базе, выбери из десятка похожих, взвесь, введи граммы. Так при каждом приёме пищи, каждый день. Большинство бросает через пару недель, и не потому, что передумали худеть, а потому что устали заполнять формы.

Я хотел убрать сам этот шаг. Не ускорить форму, а заменить её разговором: написал «съел творог и кофе», и всё. Или отправил фото тарелки. Остальное — забота приложения.

Если записать обед дольше, чем его съесть, человек бросит дневник через неделю.
Пустой чат с Балансиком и набранной фразой о завтраке
Вместо формы — одна фраза в чате
Глава 02

Первое правило: модели нельзя доверять цифры

Самое опасное в ИИ-продукте — то, как убедительно модель ошибается. Она может придумать порцию, по-разному посчитать одно и то же блюдо или молча потерять продукт из списка. В чат-боте это неприятно. В дневнике, по которому человек следит за здоровьем, это недопустимо.

Поэтому в ppFIT модель вообще не пишет в базу. Она только предлагает действие: «добавить 250 г овсянки на завтрак». Сервер проверяет его по десятку правил и лишь потом записывает. У каждого числа хранится происхождение: в интерфейсе галочка означает проверенные данные, а «≈» — оценку ИИ. Пользователь всегда видит, чему можно верить безоговорочно, а что стоит перепроверить.

Лента дневника с отметками происхождения данных
«≈» у оценок ИИ и галочка у проверенных данных
Глава 03

Разговор, а не команда

Люди пишут не так, как ожидает парсер: «тарелка борща», «банка тунца», «как вчера», а через десять минут — «нет, там было 200 грамм». Смысл каждой фразы зависит от того, что было сказано до неё.

Я построил для ассистента память о текущем разговоре: он помнит, что переспросил, может отложить уточнение, если пользователь сменил тему, просит подтверждение перед удалением и даёт отменить последнюю запись одной кнопкой. Иногда Балансик задаёт лишний вопрос. Это сознательный выбор: вопрос дешевле неверной записи.

Диалог с Балансиком
Обед записан одной фразой, в ответе реальные итоги дня
Глава 04

Три входа — один человек

Едой удобнее делиться в Telegram, а смотреть графики — в браузере. Поэтому ppFIT живёт сразу в трёх местах: веб-приложение, Mini App внутри Telegram и обычный бот. У каждого свой способ входа, но дневник у человека должен быть один.

Самое тонкое место — привязка Telegram к уже существующему аккаунту. Сделать её в лоб значит рискнуть тем, что чужой Telegram получит доступ к чужим данным. Поэтому при первом запуске приложение явно спрашивает, создать новый профиль или войти в существующий, а при конфликте честно говорит об ошибке, вместо того чтобы молча сливать данные.

Настройки: Email и Telegram привязаны к одному аккаунту
Email и Telegram — один аккаунт и один дневник
Глава 05

Дёшево по-настоящему

У продукта не было бюджета на серверы и DevOps. Всё работает на обычном виртуальном хостинге: статический интерфейс, PHP и MySQL, без Node.js, очередей и фоновых процессов.

Деньги в ИИ-продукте утекают через запросы к модели, поэтому я сначала измерил, а потом выбрал. Собрал бенчмарк из 55 сценариев на трёх языках и сравнил модели по точности и цене. В итоге простые сообщения разбирает быстрая дешёвая модель, сложные уходят к более сильной, а бюджетный лимит не даёт одному пользователю сжечь месячный бюджет. Расчётная стоимость — около 20 центов за тысячу обращений. Если ИИ вообще отключится, дневник продолжит работать вручную.

Сначала измерить, потом выбирать модель. Иначе платишь за самую дорогую просто на всякий случай.
Форма ручного добавления продукта
Если ИИ отключён, запись можно добавить вручную
Глава 06

Что получилось

ppFIT работает в бете на ppfit.webmm.ru. Еду можно записать фразой или фото, в браузере или в Telegram, и в любом из каналов это один и тот же дневник.

канала на одном аккаунте
3
канала на одном аккаунте
расчётная стоимость ИИ на 1000 обращений
~$0,20
расчётная стоимость ИИ на 1000 обращений
сценариев в бенчмарке ИИ на RU, RO, EN
55
сценариев в бенчмарке ИИ на RU, RO, EN
автотестов бэкенда и фронтенда
660+
автотестов бэкенда и фронтенда
История веса за 30 дней
История: тренд веса за 30 дней

Хотите такой же подход к своему продукту?

AI-ассистент, веб-приложение или Telegram Mini App — расскажите о задаче.

Обсудить проект