GPT в живом продукте (AI трекер питания)
Удобный трекер питания.
Эта штука была моей мечтой на протяжении многих лет.
Кто-то сказал "Мы - то, что мы едим", и хотя это натяжка, я всегда задавался вопросом, кто мы, учитывая современную пищевую среду.
Еда кругом, и живя обычной городской жизнью, трудно оказаться дальше ста шагов от источника пищи. В последний раз я обнаружил полку с едой в книжном магазине. (Думал это место про “духовную пищу”)
Еще большая проблема - содержание этой еды. Об этом, пожалуй, даже начинать не буду.
Поэтому, стоит противостоять среде и создавать инструменты для осознанного питания и улучшения физической формы.
Я пробовал десятки приложений для отслеживания питания на протяжении многих лет, но ни разу не смог встроить это в свою жизнь. Все эти интерфейсы, списки, списки, списки. На ведение дневника питания уходят часы.
Я представлял удобный продукт, где можно просто вводить то, что ты ешь, без каких-либо усилий, рисовал скетчи интерфейса в блокноте, и… клал на полку. Технически сделать это было невозможно.
Пока не появился GPT-4. После теста я загорелся: “Наконец это реализуемо!”.
Мы начали с простейшего бота в телеграме, назвали его Lolo и раздали десятку друзей.
Фидбек был теплый, пользователи передавали бота друг другу, мы вложились в дальнейшую разработку и, наконец, выпустили как приложение для iOS.
Но не все, конечно, так радужно.
О проблемах
Пока пользователей было совсем мало, бот в основном справлялся и казалось, что мы отработали основные острые углы.
В традиционных GUI продуктах первый десяток юзеров показывает 80% проблем. Увы, это не работает с AI и как только пошел ручеек нового трафика мы увидели мириады путей, которыми все может пойти не так.
Я даже не мог бы их предсказать.
Например, у бота есть знание о текущем пользовательском весе, но нет истории. Один юзер регулярно обновляет вес и спрашивает "А насколько я уже похудела", бот этого не знает, но всегда придумывает какую-то рандомную цифру и нахваливает юзера за победу.
Другой юзер общается с ботом через аудио-сообщения и виспер по совершенно непонятной причине транслирует нормальную английскую речь в Уэльский. Натурально просто в Уэльский все переводит. А gpt потом дальше на уэльском начинает с юзером говорить.
Третий просит бота сделать что-то в интерфейсе: типа "закрепи мне эту панельку". Бот с радостью соглашается и репортит: "закрепил". Стоит ли говорить, что это не более чем фантазия.
Это случайные примеры из многих, которые я вижу выборочно поглядывая логи, и я пока с трудом представляю как можно подложить соломки под все это 🙂 Но глаза боятся, а руки делают.
Чтобы бот врал меньше, мы внедрили в него Внутренний Монолог. (техника из слитых промптов бинга)
Монолог - это пространство, где бот сам себе рассказывает что происходит и что он собирается сделать. Качество ответов значительно выше, если бот прокладывает к ним себе явную дорожку. Пользователь этого не увидит. Когда gpt выдает монолог, в аппе мы показываем “Lolo is thinking”. Получилось мило, почти как тефаль, который “думает о нас”.
Другие затыки - технические.
Мы получаем ответ от GPT в виде JSON со всеми полями и функциями. И он периодически ломает формат: то функцию придумает, то параметр не туда напишет, в итоге падает бекенд. Мы придумали магический трюк: Feed Error Back in The Loop, где мы передаем текст ошибки прямо в промпт-цепь при попытке Retry с пометкой, что это был Failed Output.
Такая самокритика помогает ему самому исправлять свои ошибки.
О радостях
Главная - люди этим реально пользуются и платят.
Интересно, что в отличие от классических продуктов они воспринимают бота как “живую сущность”, а не программу: желают доброго утро, благодарят за работу, хвалят и ругают. “Доброе слово и кошке(боту) приятно” (с)
Чем это лучше просто chatGPT
Конечно, несложно настроить в обычном чатгпт базовый промпт для питания. Но как только вы начнете использовать его регулярно он забудет кто вы, что вы хотите, сколько уже съели сегодня и так далее. Lolo сохраняет ваши данные в БД и контекст разговора. К тому же приложение это удобно, и мы сделали кучу красивых интерфейсов вместо полотен текста.
А насколько это точно
Разумеется, если вы готовитесь к соревнованиям по бодибилдингу и ваши ставки в миллиграммах вам стоит поискать про-альтернативы. Но для простых базовых задач знаний GPT о питательной ценности вполне достаточно.
Красота системы еще и в ее гибкости. Если вы напишете: “Я поел мяса” он запишет что-то отдаленное. Если скажете “Я съел 200г жареной куриной грудки” он будет куда ближе к истине. Чем точнее ваши вводные - тем точнее трекинг и каждый пользователь находит свой баланс.
Почему так дорого?
Дешевый или почти бесплатный chatGPT3.5 с задачей не справляется, а GPT-4, на котором работает Lolo - очень дорогой. Ребята из OpenAI обещали его удешевить, ждем вместе с вами.
PS
Сегодня мы зарелизили Lolo на Product Hunt, где ваши голоса и каменты очень помогут (правда, мы точно не знаем чем).
PS С любыми вопросами, мыслями по продукту пишете мне в телеграм @mikky_a