aveDenis

На Пикабу
178 рейтинг 2 подписчика 0 подписок 2 поста 1 в горячем
14

Завайбкодил за 4 часа AI дневник питания и перестал пользоваться OURA

Иногда хочешь просто записать, что поел — а заканчиваешь тем, что делаешь новый AI-продукт. Так я за вечер завайбкодил бота, который анализирует еду по фото, даёт советы и чувствует себя умнее, чем мой OURA Ring за $450.

Завайбкодил за 4 часа AI дневник питания  и перестал пользоваться OURA

Всем привет. Последнее время я ударился в зож, ношу OURA, хожу в зал чаще чем обычно, не ем сладкое, и так далее.

В OURA есть прикольная функция вносить приемы пищи, текстом или фото. Но для себя я выделил несколько минусов:

  • Нельзя закрывать приложение 5-10 секунд пока идет анализ;

  • Иногда анализ заканчивается ошибкой и надо повторно вносить данные;

  • Не учитывает мой вес/рост и потребление калорий, только время приема и "здоровая" ли еда;

Meals экран в OURA и завтрак который я приготовил сам 😀

Meals экран в OURA и завтрак который я приготовил сам 😀

Про формат

Были разные мысли — Telegram Mini App, мобильное приложение, Telegram бот.

По итогу остановился на Telegram боте по следующим причинам:

  • Быстрее и проще разработка;

  • Чат это наиболее нативный формат для AI продуктов и ассистентов;

Про логотип

Когда мы отрисовывали разные варианты, этот мне показался самым интересным. На мой взгляд, многозначность логотипа это один из важнейших параметров:

  • Авокадо;

  • Гиря;

  • Указатель движения на карте;

  • Немного на фитнес кольцо;

А у кого-то наверняка будут свои ассоциации 😄

Разработка

Несколько больших промптов с описанием требований к бэкенду бота в Claude Code с моими любимыми MCP — serena, sequential-thinking, context7... И после нескольких итераций ручных правок, а также промптами, бот готов.

Живем в удивительное время, когда я начинал работать не существовало ни ChatGPT ни AI агентов для кодинга — конечно это здорово экономит время, и в правильных руках мощнейший инструмент. По стэку у нас Go, MongoDB, Kubernetes.

Из прикольного: на каждое фото или описание приема пищи бот ставит рандомную реакцию, в режиме AI чата ставит глаза — в знак того что сообщение в обработке. Редко встречаю такое в Telegram ботах, но это добавляет визуала и бесшовного UX — как раз пока проигрывается анимация реакции, за эти полсекунды AI анализ уже будет закончен и пользователь получит ответ.

Единственный в мире нутрициолог который шарит за разработку 😂

Единственный в мире нутрициолог который шарит за разработку 😂

Интересные функции

Профиль

Опционально вы можете заполнить свои параметры и цели по питанию, тогда AI рекомендации будут более точными. Также бот посчитает Базовый обмен веществ (BMR) и Суточную норму калорий (TDEE).

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

Экран профиля

Экран профиля

Сканер

Очевидно что можно фотографировать еду, этикетки, и даже скриншоты из доставок с описанием на фото — КБЖУ будет точно определяться (для этого используется GPT 4o). Также если к сообщению с фото прикреплен текст, то это тоже будет учтено при анализе.

Отчеты

Каждый день и раз в неделю формируется отчет по приемам пищи за данный период, и весь контекст по КБЖУ блюд и профиль пользователя (рост, вес, и так далее) отправляется в ChatGPT для анализа.

Интересный момент: для ежедневных отчетов мы также добавляем в контекст информацию "за вчера" включая вчерашнюю AI рекомендацию. Таким образом, создается ощущение действительно персонального ассистента.

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

AI нутрициолог

Можно пообщаться с ботом в режиме бесконечного диалога, в память будут загружены приемы пищи за месяц, данные из профиля. Также бот держит контекст общения, можно отвечать на его вопросы и задавать уточняющие в ответ — вообщем как ChatGPT, но с отличием что он "помнит" все ваши обеды и физические параметры.

Например, можно попросить описать рацион на завтра с учетом любимых блюд и продуктов — если вы пользуетесь некоторое время ботом, он сможет выделить паттерны что для вас "любимое" самостоятельно.

Завайбкодил за 4 часа AI дневник питания  и перестал пользоваться OURA

Планы на развитие

Из нетривиального: я думаю было бы интересно добавить функции AI агента в контексте питания, например после формирования рациона через чат, сделать возможность заказать ингредиенты или готовые блюда в 1 клик из ВкусВилл с доставкой домой (через API).

Также наверное можно позаимствовать из OURA декомпозицию — если на фото несколько блюд, считать и записывать их по отдельности. Или даже разбирать по ингредиентам, и присваивать "шкалу полезности".

Думаю над добавлением еженедельного вопроса о текущем весе (например я лично взвешиваюсь каждый понедельник), чтобы сохранять исторические данные, но пока не уверен насколько это полезно.

Тарифы и монетизация

Сейчас все возможности бота бесплатны и в какой-то мере хочется сделать это социально-полезным проектом как и Telegram Questions (прошло 4 года и сайт все еще работает, хотя не принес мне ни копейки, только расходы на инфраструктуру) и финансировать расходы на ChatGPT API своей огромной зарплатой крипто-бэкендера 😂

Даже если платные тарифы и будут, то планирую оставить базовую функциональность для всех, и лишь некоторые из функций которые требуют значительных расходов ChatGPT API, например бесконечный чат с "AI нутрициологом" с твоей полной историей обедов и контекстом, сделать лимитированными или по подписке.

Все чем мы питаемся очень важно для самочувствия. И основная идея проекта сделать трекинг питания и современный инструмент доступным для тех кто не может позволить себе OURA Ring за 450 баксов + 6 ежемесячно, или Whoop примерно за те же деньги.


Переходите и пользуйтесь, буду рад если вам бот будет полезен — @foodtrck_bot

Если очень хочется определенную функцию, или есть обратная связь по проекту, давайте обсудим в комментариях

Показать полностью 7
66

Я сделал StackOverflow из IT-чатов Telegram

Дисклеймер: возможно вы уже видели эту статью пару месяцев назад на других ресурсах. Сейчас на сервисе уже более 1 млн обсуждений, тэги, и прочие небольшие нововведения. На Пикабу ранее статьи не было, теперь есть! )

Всем привет. Я бэкенд разработчик, и по роду деятельности активно использую разные чаты в Телеге – по Go, Кубернетес, базам данных. Задаю свои вопросы, иногда отвечаю на чужие.

В какой-то момент этих чатов стало так много, что личные сообщения искать было совсем трудно.

Как и многих бумеров, меня тоже FoMO не обходит стороной. Продуктивность падает, хочется читать чатики, участвовать в холиварах (кто не в курсе, в айтишных чатах баталии многочисленные, например в чате по Куберу 6к юзеров. Во фронтовых чатах по JS или фреймворкам еще больше). Каждый день обсуждают что-то действительно интересное

Было бы здорово получить дайджест популярных обсуждений за день — какое-то время вынашивал эту идею, но по итогу трансформировал в форму базы знаний в формате вопрос-ответ (начальная идея перекочевала в виде дефолтной сортировки вопросов по дням+популярности).

Идея Q&A из Телеги показалась очень интересной, и социально полезной. Обидно что такая кладезь знаний пропадает в недрах неиндексируемых телеграм-чатов. Ведь когда я был начинающим разрабом, общение с комьюнити позволило мне быстро бустануть скиллы. Пришло время отдавать должок)

Первые проблемы

Очевидно что для реализации такого сайта потребуется как-то кодом читать сообщения из телеги. У телеграма есть API для ботов (не подходит, боты не могут самостоятельно вступать в чаты), а также клиентский API который предоставляет все возможности пользователя Telegram — TDLib или кастомные реализации MTProto. Это называется юзер-бот, к слову спам в телеге рассылают именно так.

Я люблю Go, хорошие люди посоветовали этот Telegram клиент. Окей, почитав доку библиотеки, за пару часов сделал прототип который выводит новые сообщения из чатов в лог.

Ураа, видно несколько новых сообщений из телеграма в консоли! Думаю дальше дело пойдет быстрее

Но я рано обрадовался. Через несколько секунд вижу вывод ошибок. Пытаюсь проверить аккаунт через мобильное приложение, меня тут же разлогинивает. Ввожу номер, и вижу что мой аккаунт заблокирован.

Кликаю на «Помощь», пишу на почту поддержке Телеграм, рассказываю о своем проекте и причинах использования экзотического неофициального клиента. После недолгой переписки, аккаунт разблокировали.

Однако через несколько дней возникла другая проблема: после пары минут работы Телеграм разлогинивал всех сессии аккаунта. Решилось так же через письмо в поддержку, в котором описал что использую API как и планировал и в readonly режиме. Сейчас работает стабильно.

Архитектура проекта


Отдельный Телеграм аккаунт

Вступил в ~500 чатов нужных тематик руками через мобильное приложение.

Scanner сервис

Сервис на Go, который держит коннект с телегой, получает новые сообщения которые приходят в аккаунт, фильтрует только те что содержат «?» — значит это вопрос и нам это интересно. Далее сервис обогащает данные объектом юзера, доп. информацией по чату через Telegram API, сохраняет аватарки пользователя и чата в S3, и отправляет сообщение с метаданными в очередь NATS JetStream.

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

Telegram API имеет жесткие лимиты, поэтому приходится держать очень слабый поток запросов. Сейчас на сайте синхронизировано 100к вопросов за 1 месяц работы сканнера, но обработана совсем малая часть исторических данных. Когда будет обработано все — вопросов будет около 10млн.

Stateless сервис, но всегда в единственном экземпляре так как в телеге открыта так же 1 сессия клиента.

Backend сервис

Сервис на Go, который читает очередь с сообщениями и сохраняет в MongoDB. Также выполняет роль фронтенда с помощью Go template (шаблонизация).

Я не стал использовать фронтенд фреймворки, хотя Vue мне нравится. Главная причина — очень ресурсоемкий SSR (чтобы страничка генерировалась на сервере, и роботы поисковых систем без проблем ее проиндексировали). Go шаблоны очень быстрые и легковесные, плюс как любая шаблонизация они не требуют JS на клиенте. UI библиотеку взял Bootstrap — да, многим надоел он уже, но мне нравится + позволяет быстро сделать приличный интерфейс.

Stateless сервис, масштабируется без проблем (но пока нагрузки нет, и это не требуется).

Качество данных

Спасибо функциональности «ответов» на сообщения в телеге. Так можно легко разобрать какой ответ относится в конкретному вопросу. В целом, меня устраивает качество данных которые собираются. Нерелевантных обсуждений не более 15%, что для автонаполняемого сайта думаю неплохой показатель.

Конечно, встречаются приколы и странные вопросы:

Или случаи когда кто-то один ответил вне треда, и кто-то ответил уже ему — получили новый тред, который по факту «хвост» другого обсуждения:

Монетизация

Сейчас проект не монетизируется никак. Когда посещаемость будет хотя-бы 10к визитов в день, имеет смысл поставить рекламный баннер. Сейчас посещалка около 500 визитов в день.

Планы по развитию

- Отдельная страничка с тэгами отсортированными по популярности;

- Страница где будут новые ответы на вопросы, чтобы можно было увидеть сверху самое обсуждаемое прямо сейчас;

- Добавить больше статистических данных. Например, самые активные юзеры среди всех чатов;

- Полировка UI: кнопки шаринга, статические ссылки на конкретный ответ, придумать какой полезный блок поставить в правой колонке — сейчас там пустовато;

Спасибо что дочитали до конца. Как считаете, полезный проект я запилил? Покликать можно тут: https://telq.org

Показать полностью 6
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества