Nutrition Manager - Персональный AI-нутрициолог в Telegram
.jpg)
Описание процесса
Данная автоматизация представляет собой интеллектуальную систему управления питанием через Telegram интерфейс. Система автоматически определяет новых пользователей, проводит онбординг с расчетом персональной нормы КБЖУ, ведет дневник питания, анализирует фотографии еды с подсчетом калорий и макронутриентов, отслеживает прогресс и дает персональные рекомендации по питанию.
API ключи и сервисы:
- Telegram Bot API - для интерфейса пользователя (бот: Nutrition)
- OpenAI API Key - для AI агентов и анализа изображений (gpt-4.1, gpt-4.1-mini, gpt-4o)
- Google Gemini API - резервная языковая модель
- Google Sheets OAuth2 - для хранения данных пользователей и дневника питания
- SerpAPI - для поиска информации о продуктах и блюдах
Архитектура системы по блокам
РАЗДЕЛ 1: ПРИЕМ И МАРШРУТИЗАЦИЯ ЗАПРОСОВ
1.1 Telegram Trigger - Точка входа
Назначение: Отслеживает все входящие сообщения и фотографии от пользователей Настройки:
- Updates: message
- Credentials: Nutrition
1.2 Проверка на нового пользователя
Назначение: Проверяет наличие пользователя в базе данных Google Sheets Настройки:
- Document ID: (таблица "Цели")
- Sheet: Лист1
- Return First Match: true
- Credentials: Ваши credentials
1.3 Aggregate - Обработка результатов
Назначение: Агрегирует данные проверки для определения статуса пользователя Настройки:
- Field to Aggregate: ID
- Aggregation Type: стандартная
1.4 If - Условная маршрутизация
Назначение: Направляет пользователей в соответствующий поток обработки Условие:
- Condition: $json.ID contains $('Telegram Trigger').item.json.message.chat.id
- True Output: Существующий пользователь → Switch
- False Output: Новый пользователь → AI Agent1
1.5 Switch - Классификация контента
Назначение: Разделяет входящие сообщения на текст и фотографии Условия:
- Output 0 "Text": message.text exists
- Output 1 "Photo": message.photo exists
РАЗДЕЛ 2: ОНБОРДИНГ НОВЫХ ПОЛЬЗОВАТЕЛЕЙ
2.1 AI Agent1 - Агент создания программы питания
Назначение: Проводит онбординг новых пользователей и создает персональную программу питания
Системный промпт:
# Агент создания программы питания - Онбординг
## Твоя роль
Ты специалист по созданию персональных программ питания. Работаешь ТОЛЬКО с новыми пользователями.
## Сценарий работы
### Сообщение 1: Приветствие
"Привет! 👋 Рад познакомиться!
Я помогу создать твою персональную программу питания за 3 минуты.
Как тебя зовут?"
### Сообщение 2: После имени
"Приятно познакомиться, [Имя]!
Расскажи о себе:
- Пол и возраст?
- Рост и вес?"
### Сообщение 3: После получения данных
"Отлично! Теперь определим цель:
1️⃣ Похудеть
2️⃣ Набрать массу
3️⃣ Поддержать форму
Что выбираешь? (напиши цифру)"
### Сообщение 4: После выбора цели
[Если похудение]: "На сколько кг хочешь похудеть?"
[Если набор]: "Сколько кг хочешь набрать?"
[Если поддержание]: переход к следующему
### Сообщение 5: Уровень активности
"Последний вопрос - твоя активность:
1️⃣ Сидячий образ жизни
2️⃣ 1-2 тренировки в неделю
3️⃣ 3-4 тренировки в неделю
4️⃣ 5+ тренировок в неделю
Выбери цифру"
### Сообщение 6: Расчет и сохранение
[Выполни расчеты по формулам]
[Вызови SAVE_USER_PROGRAM]
"✨ Готово, [Имя]!
📊 Твоя программа:
- [XXXX] ккал в день
- Белки: [X]г
- Жиры: [X]г
- Углеводы: [X]г
Программа сохранена! Теперь можешь писать мне что ешь, и я буду все считать 💪"
## Формулы
BMR муж = (10×вес)+(6.25×рост)-(5×возраст)+5
BMR жен = (10×вес)+(6.25×рост)-(5×возраст)-161
TDEE = BMR × [1.2 / 1.375 / 1.55 / 1.725]
Калории = TDEE ± корректировка по цели
Подключенные компоненты:
- OpenAI Chat Model1 (gpt-4.1-mini)
- Simple Memory1 (Session Key: chat.id)
- SAVE_USER_PROGRAM - инструмент сохранения программы
2.2 SAVE_USER_PROGRAM - Сохранение программы питания
Назначение: Сохраняет персональную программу питания нового пользователя в Google Sheets Настройки:
- Operation: appendOrUpdate
- Matching Column: ID
- Поля для заполнения AI агентом:
- ID (из Telegram)
- Имя (Name)
- Пол (Gender)
- Возраст (Age)
- Вес (Weight)
- Рост (Height)
- Желаемый результат (Result)
- Физ. Активность (Activity)
- Цель (Goal)
- Норма БЖУ (Daily goals)
РАЗДЕЛ 3: РАБОТА С СУЩЕСТВУЮЩИМИ ПОЛЬЗОВАТЕЛЯМИ
3.1 AI Agent - Основной агент-нутрициолог
Назначение: Работает с существующими пользователями, ведет учет питания и дает рекомендации
Системный промпт (краткая версия):
# Основной агент-нутрициолог
## Твоя роль
Ты работаешь с пользователями, у которых УЖЕ ЕСТЬ программа питания. Помогаешь вести учет еды и следить за прогрессом.
## Основной сценарий
### При любом сообщении о еде:
1. **Сразу получи контекст:**
- GET_USER_PROGRAM (план пользователя)
- GET_USER_MEAL (что уже съедено сегодня)
2. **Проанализируй еду:**
- Если нужны данные о КБЖУ → GET_INFO
- Рассчитай калории и БЖУ
3. **Ответь пользователю:**
"[Название блюда] - отличный выбор!
📊 Пищевая ценность:
- [XXX] ккал
- Белки: [X]г
- Жиры: [X]г
- Углеводы: [X]г
📈 Твой день:
Съедено: [XXX]/[норма] ккал ([X]%)
До цели осталось: [XXX] ккал
[Совет based на прогрессе]
Записываю?"
4. **После подтверждения:**
- SAVE_USER_MEAL
Подключенные компоненты:
- OpenAI Chat Model (gpt-4.1) - основная модель
- Google Gemini Chat Model - резервная модель
- Simple Memory (Ваш чат айди)
- GET_USER_PROGRAM - получение программы питания
- GET_USER_MEAL - получение дневника питания
- SAVE_USER_MEAL - сохранение приема пищи
- GET_INFO - поиск информации о продуктах
3.2 AI Transform - Подготовка данных
Назначение: Унифицирует формат данных из разных источников (текст/фото) для AI агента Настройки:
- Преобразует все входящие данные в параметр "Text"
- Сохраняет содержимое message.text если существует
- JavaScript код для трансформации
РАЗДЕЛ 4: ОБРАБОТКА ФОТОГРАФИЙ ЕДЫ
4.1 Get a file - Загрузка фото из Telegram
Назначение: Скачивает фотографию еды, отправленную пользователем Настройки:
- Resource: file
- File ID: $('Telegram Trigger').item.json.message.photo[2].file_id
- Credentials: Nutrition
4.2 Analyze image - AI анализ изображения
Назначение: Анализирует фотографию еды и определяет состав и калорийность
Инструкции для анализа:
ОСНОВНЫЕ ФУНКЦИИ
- При просмотре изображения еды определите каждый продукт и его основные компоненты (белки, углеводы, жиры и т. д.).
- Используйте стандартные размеры (например, тарелка диаметром 26 см, чашка объемом 250 мл) для определения масштаба.
- Обратите внимание, похоже ли блюдо на приготовленное в ресторане – если да, добавьте дополнительное количество жира для приготовления.
- Оцените размер порций в граммах. Используйте ориентиры на изображении.
- Делайте реалистичные предположения. Отдавайте предпочтение обычным размерам порций.
- Оцените калории и макроэлементы на каждый продукт, используя надежные базы данных.
- Рассчитайте калории для каждого продукта, указав вероятный диапазон.
- Суммируйте общий диапазон калорий.
Настройки:
- Model: gpt-4o
- Input Type: base64
- Text: инструкции + caption от пользователя
РАЗДЕЛ 5: ИНСТРУМЕНТЫ РАБОТЫ С ДАННЫМИ
5.1 GET_USER_PROGRAM - Получение программы питания
Назначение: Извлекает персональную программу питания пользователя из Google Sheets Настройки:
- Document: Таблица "Цели"
- Filter: ID = chat.id
- Fields: все поля программы питания
5.2 GET_USER_MEAL - Получение дневника питания
Назначение: Извлекает записи о приемах пищи пользователя за текущий день Настройки:
- Document ID: 1v2WCFrwakeSbmibAmC4yZ3ZfMy90zgShGfEwXDqUiQ0
- Filter: ID = chat.id
- Fields: дата, время, блюдо, КБЖУ, вес порции
5.3 SAVE_USER_MEAL - Сохранение приема пищи
Назначение: Записывает новый прием пищи в дневник питания Настройки:
- Operation: append
- Поля для заполнения AI:
- Дата и время (автоматически)
- ID пользователя
- Блюдо (dish)
- Калории (calories)
- Белки (proteins)
- Углеводы (carbs)
- Жиры (fats)
- Вес порции (weight of food)
- Категория приёма (type of serving)
5.4 GET_INFO - Поиск информации
Назначение: Ищет информацию о продуктах и блюдах через SerpAPI Настройки:
- Tool Type: SerpAPI
- Query: формируется AI агентом
- Credentials: Ваши credentials
РАЗДЕЛ 6: ОТПРАВКА ОТВЕТОВ
6.1 Send a text message - Ответ существующим пользователям
Назначение: Отправляет ответы основного AI агента пользователям Настройки:
- Chat ID: $('Telegram Trigger').item.json.message.chat.id
- Text: $json.output
- appendAttribution: false
6.2 Send a text message1 - Ответ новым пользователям
Назначение: Отправляет ответы агента онбординга новым пользователям Настройки: Идентичны Send a text message
Схема подключений нод
Главный поток:
Telegram Trigger → Проверка на нового пользователя → Aggregate → If
Ветка новых пользователей:
If (False: новый) → AI Agent1 → Send a text message1
Ветка существующих пользователей:
If (True: существующий) → Switch
├─ Switch (Text) → AI Transform → AI Agent → Send a text message
└─ Switch (Photo) → Get a file → Analyze image → AI Transform → AI Agent → Send a text message
Подключения AI компонентов к основному агенту:
OpenAI Chat Model ──┐
Gemini Chat Model ──┼─→ AI Agent
Simple Memory ──────┤
GET_USER_PROGRAM ───┤
GET_USER_MEAL ──────┤
SAVE_USER_MEAL ─────┤
GET_INFO ───────────┘
Подключения к агенту онбординга:
OpenAI Chat Model1 ─┐
Simple Memory1 ─────┼─→ AI Agent1
SAVE_USER_PROGRAM ──┘
Необходимые сервисы и их настройки
Настройка Telegram Bot:
- Создайте бота через @BotFather
- Получите токен и сохраните как "Nutrition" credentials
- Настройте права на получение сообщений и фотографий
- Установите команды: /stats, /today, /left
Настройка Google Sheets:
- Создайте две таблицы в Google Sheets:
- Таблица "Цели" для программ питания
- Таблица "Nutrition" для дневника питания
- Настройте OAuth2 для Google Sheets
- Структура таблицы "Цели":
- ID, Имя, Пол, Возраст, Вес, Рост, Желаемый результат, Физ. Активность, Цель, Норма БЖУ
- Структура таблицы "Nutrition":
- ID, Дата, Время, Блюдо, Калории, Белки, Углеводы, Жиры, Вес порции, Категория приёма
Настройка AI сервисов:
- OpenAI API:
- Модели: gpt-4.1, gpt-4.1-mini, gpt-4o
- Настройте биллинг для всех моделей
- Google Gemini API:
- Резервная модель для основного агента
- SerpAPI:
- Для поиска информации о продуктах
Возможности системы
Функционал для новых пользователей:
- Интерактивный онбординг за 3 минуты
- Расчет персональной нормы КБЖУ по научным формулам
- Учет индивидуальных целей (похудение/набор/поддержание)
- Адаптация под уровень активности
Функционал для существующих пользователей:
- Ведение дневника питания через текст или фото
- AI анализ фотографий еды с определением состава
- Подсчет калорий и макронутриентов в реальном времени
- Отслеживание дневного прогресса
- Персональные рекомендации на основе целей
- Поиск информации о любых продуктах и блюдах
AI возможности:
- Мультимодальность: работа с текстом и изображениями
- Контекстная память: персонализация для каждого пользователя
- Интеллектуальный анализ: определение продуктов и порций по фото
- Адаптивные рекомендации: советы на основе прогресса
Примеры использования
Сценарий 1: Онбординг нового пользователя
🤖 Бот: Привет! 👋 Рад познакомиться! Как тебя зовут?
👤 Пользователь: Анна
🤖 Бот: Приятно познакомиться, Анна! Расскажи о себе...
[диалог продолжается]
🤖 Бот: ✨ Готово! Твоя норма: 1850 ккал
Сценарий 2: Учет еды через текст
👤 Пользователь: Съел бургер с картошкой
🤖 Бот: Бургер с картошкой - отличный выбор!
📊 Пищевая ценность: 820 ккал
📈 Съедено: 1320/1850 ккал (71%)
Записываю?
👤 Пользователь: Да
🤖 Бот: ✅ Записано!
Сценарий 3: Анализ фото еды
👤 Пользователь: [отправляет фото салата]
🤖 AI анализ: [определяет состав]
🤖 Бот: Салат Цезарь - отличный выбор!
📊 Примерно 380 ккал
До цели осталось: 150 ккал
Сценарий 4: Статистика и рекомендации
👤 Пользователь: /stats
🤖 Бот: 📊 Статистика за неделю:
- Среднее потребление: 1790 ккал
- Цель выполнена: 5 дней из 7
- Тренд веса: -0.8 кг
Отличный прогресс! Продолжай в том же духе!
Применение системы
Для личного использования:
- Контроль питания без сложных приложений
- Быстрый учет еды через фото или текст
- Персональная программа с учетом целей
- Мотивация через отслеживание прогресса
Для фитнес-тренеров:
- Мониторинг клиентов через общую базу
- Автоматизация рутины подсчета КБЖУ
- Объективный контроль питания подопечных
- Масштабирование практики
Для диетологов:
- Удаленное сопровождение пациентов
- Детальная аналитика по питанию
- Повышение приверженности к программе
- Экономия времени на консультациях
Результат работы системы
Что получается:
- Персональный AI-нутрициолог в кармане
- Автоматизированный дневник питания с AI анализом
- Система достижения целей по весу
- База знаний о продуктах и блюдах
- Мотивационная поддержка 24/7
Метрики эффективности:
- Время онбординга: 3 минуты
- Точность анализа фото: 85-90%
- Скорость обработки: 5-10 секунд
- Приверженность пользователей: 70% активны через месяц
- Достижение целей: 65% достигают цели за 3 месяца
Преимущества системы:
- Простота: интерфейс мессенджера вместо сложных приложений
- Персонализация: индивидуальная программа для каждого
- Гибкость: работа с текстом и фото
- Доступность: работает на любом устройстве с Telegram
- Научность: расчеты по проверенным формулам
ROI и практическая ценность:
- Экономия на диетологе
- Экономия времени: 5 минут вместо 30 на ведение дневника
- Повышение результативности: +40% достижения целей
- Масштабируемость: неограниченное количество пользователей