хочу обсудить проект
Готово! Мы ответим вам в течении одного рабочего дня
Что-то пошло не так. Попробуйте еще раз
Назад
1k+ участников
Вступить в Telegram
n8n
25.09.2025

Nutrition Manager - Персональный AI-нутрициолог в Telegram

Описание процесса

Данная автоматизация представляет собой интеллектуальную систему управления питанием через Telegram интерфейс. Система автоматически определяет новых пользователей, проводит онбординг с расчетом персональной нормы КБЖУ, ведет дневник питания, анализирует фотографии еды с подсчетом калорий и макронутриентов, отслеживает прогресс и дает персональные рекомендации по питанию.

API ключи и сервисы:

  1. Telegram Bot API - для интерфейса пользователя (бот: Nutrition)
  2. OpenAI API Key - для AI агентов и анализа изображений (gpt-4.1, gpt-4.1-mini, gpt-4o)
  3. Google Gemini API - резервная языковая модель
  4. Google Sheets OAuth2 - для хранения данных пользователей и дневника питания
  5. 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:

  1. Создайте бота через @BotFather
  2. Получите токен и сохраните как "Nutrition" credentials
  3. Настройте права на получение сообщений и фотографий
  4. Установите команды: /stats, /today, /left

Настройка Google Sheets:

  1. Создайте две таблицы в Google Sheets:
    • Таблица "Цели" для программ питания
    • Таблица "Nutrition" для дневника питания
  2. Настройте OAuth2 для Google Sheets
  3. Структура таблицы "Цели":
    • ID, Имя, Пол, Возраст, Вес, Рост, Желаемый результат, Физ. Активность, Цель, Норма БЖУ
  4. Структура таблицы "Nutrition":
    • ID, Дата, Время, Блюдо, Калории, Белки, Углеводы, Жиры, Вес порции, Категория приёма

Настройка AI сервисов:

  1. OpenAI API:
    • Модели: gpt-4.1, gpt-4.1-mini, gpt-4o
    • Настройте биллинг для всех моделей
  2. Google Gemini API:
    • Резервная модель для основного агента
  3. 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% достижения целей
  • Масштабируемость: неограниченное количество пользователей

Читайте также

No items found.

напишите нам, и мы покажем путь к эффективности