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

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