<style> [data-reveal] { opacity: 1 !important; transform: none !important; } </style>

NutriSense

Выпущенный мобильный продукт: бэкенд на Go, клиент на Flutter и ассистент с жёсткими границами того, что ему разрешено утверждать.

Принадлежность
Принадлежит Red Sentra.
Доступность
Живой продукт. Исходный код приватный.
Стек
Go / Flutter / LLM
Публичная витрина (откроется в новой вкладке)

Обзор этой системы от Red Sentra (откроется в новой вкладке)

Снимок публичного сайта продукта NutriSense.

Задача

Питание — это область, где уверенно неверный ответ языковой модели не выглядит забавным сбоем. Продукту нужна была польза ассистента без права импровизировать.

Система

Бэкенд на Go обслуживает клиент на Flutter, а ассистент завёрнут в явные ограничения: ограниченные входы, валидируемые выходы и определённые отказы, поэтому он остаётся в границах того, за что продукт готов отвечать.

Моя роль

Backend и доставка, ограниченное поведение ассистента и релиз-пайплайн вплоть до сторов.

Самое сложное

Сделать языковую модель полезной в теме питания, не позволяя ей импровизировать. Модель хорошо описывает и оценивает, но она не источник истины, и продукт должен был оставаться в границах того, за что готов отвечать.

Архитектурные решения

  1. Ассистент отвечает внутри фиксированного контракта. Входы ограничены, выходы валидируются по схеме до того, как попадут к клиенту, поэтому всё вне этой формы становится отказом, а не догадкой.
  2. Go на сервере, Flutter на клиенте, один API между ними. Единый контракт бэкенда означал, что мобильный релиз никогда не ждал серверную работу под конкретную платформу.
  3. Путь релиза — это часть продукта. Подача в сторы и версионирование строились вместе с функциями, потому что мобильный продукт, который нельзя безопасно выпустить, не закончен.

Текущее состояние

Живой и в активной разработке.