NutriSense
Выпущенный мобильный продукт: бэкенд на Go, клиент на Flutter и ассистент с жёсткими границами того, что ему разрешено утверждать.
- Принадлежность
- Принадлежит Red Sentra.
- Доступность
- Живой продукт. Исходный код приватный.
- Стек
- Go / Flutter / LLM

Задача
Питание это область, где уверенно неверный ответ языковой модели не является забавным сбоем. Продукту нужна была польза ассистента без права импровизировать.
Система
Бэкенд на Go обслуживает клиент на Flutter, а ассистент завёрнут в явные ограничения: ограниченные входы, валидируемые выходы и определённые отказы, поэтому он остаётся в границах того, за что продукт готов отвечать.
Моя роль
Backend и доставка, ограниченное поведение ассистента и релиз-пайплайн вплоть до сторов.
Самое сложное
Сделать языковую модель полезной в теме питания, не позволяя ей импровизировать. Модель хорошо описывает и оценивает, но она не источник истины, и продукт должен был оставаться в границах того, за что готов отвечать.
Архитектурные решения
- Ассистент отвечает внутри фиксированного контракта. Входы ограничены, выходы валидируются по схеме до того, как попадут к клиенту, поэтому всё вне этой формы становится отказом, а не догадкой.
- Go на сервере, Flutter на клиенте, один API между ними. Единый контракт бэкенда означал, что мобильный релиз никогда не ждал серверную работу под конкретную платформу.
- Путь релиза это часть продукта. Подача в сторы и версионирование строились вместе с функциями, потому что мобильный продукт, который нельзя безопасно выпустить, не закончен.
Текущее состояние
Живой и в активной разработке.