Статья

Навык «КБЖУ-счётчик» в Schai GPT: почему ИИ даёт диапазон, а не цифру

Навык «КБЖУ-счётчик» в Schai GPT: почему ИИ даёт диапазон, а не цифру

ProfileProfile·5 ч назад·
7
··0·
Если коротко. Навык «КБЖУ-счётчик» в Schai GPT считает еду по описанию словами. Вы пишете «омлет из двух яиц на сливочном масле и тост» — получаете таблицу: продукт, порция, ккал, белки, жиры, углеводы — и итог по приёму пищи. Если данных мало, навык делает одно из двух: задаёт ровно один уточняющий вопрос (чаще всего про вес или про масло) либо сразу считает диапазоном и явно помечает его как оценку. Второе — не отговорка и не лень модели. Диапазон здесь честнее точной цифры, и ниже я разберу, почему именно так, с цифрами из регламентов.
Я — Profile, разбираю на Schai, как наши инструменты устроены изнутри. Дальше — навык по его собственному сценарию: шесть стадий, правило одного вопроса, отдельная стадия про поддержку — и честная граница того, чего он не делает.

Что происходит, когда вы пишете «борщ и два куска хлеба»

Сценарий навыка в коде описан одной строкой, и она задаёт всю логику разговора:
Веди подсчёт КБЖУ как пищевой дневник: распознать еду → уточнить порции → посчитать → обновить итог → предложить улучшение.
Ключевое слово — «дневник». Обычный счётчик калорий требует, чтобы вы сначала нашли продукт в базе, потом выбрали порцию, потом нажали «добавить». Здесь порядок обратный: сначала вы говорите как говорите, а разбор берёт на себя ИИ. Формат ответа задан жёстко, это прямая инструкция навыка: «Для каждого продукта показывай таблицу: продукт, порция, ккал, белки, жиры, углеводы. В конце дай итог по приёму пищи и короткий комментарий».
Выглядит это так (цифры здесь — иллюстрация формата, а не норма и не справочные значения): Продукт → Порция → Ккал → Б / Ж / У Борщ на свинине → 300 мл → 190–240 → 9 / 12 / 14 Хлеб ржаной → 2 ломтя, 60 г → 130–140 → 4 / 1 / 26 Сметана 20% → 1 ст. л., 20 г → 40 → 0,5 / 4 / 0,6 Итог → — → 360–420 → 13 / 17 / 41
Второе, что определяет разговор, — правило одного вопроса. Оно общее для всех навыков Schai GPT и записано так: «Если данных мало, задай ровно один самый важный следующий вопрос, который сильнее всего сузит поиск или приблизит план». И отдельно, отдельной строкой: «ЗАПРЕЩЕНО повторять вопрос, на который уже спрашивал, даже если ответа не было». Если вы промолчали про вес порции, навык не будет переспрашивать — он назовёт допущение вслух («считаю тарелку за 300 мл») и пойдёт дальше. Это важнее, чем кажется: анкета из пяти вопросов про один бутерброд убивает саму идею быстрого подсчёта.

Шесть стадий: что происходит на каждой

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

1. Сбор еды

Включается на любое «посчитай калории», описание блюда или рецепт. Внутренний чек-лист: что съел, вес или объём, количество, бренд, способ приготовления, масло, соусы, сахар. Дальше развилка: если данных мало — один уточняющий вопрос; если вам нужен быстрый ответ — сразу диапазон. Ветки: быстрая оценка, точный расчёт, уточнить порцию.

2. Расчёт приёма пищи

Когда продукты и порции хотя бы примерно известны, навык выводит ту самую таблицу, итог и — обязательным пунктом — честную пометку о точности. После расчёта предлагает добавить съеденное к дневному итогу или уточнить спорные продукты. Ветки: добавить в дневник, уточнить ингредиент, посчитать на 100 г, сравнить варианты.

3. Рецепт и порции — то, чего обычные счётчики не умеют

Вот здесь разница с приложением-трекером принципиальная. Трекер знает «борщ, 100 г» из базы — усреднённый борщ неизвестно чьей рецептуры. Но вы варили свой: с этим куском мяса, с этим количеством масла на зажарку, в этой кастрюле. Стадия recipe-mode собирает всё: ингредиенты, вес сырого и готового блюда, количество порций, масло и соусы. И считает три числа сразу — на всю кастрюлю, на одну порцию и при необходимости на 100 г.
Вы один раз перечисляете, что положили в кастрюлю, говорите «вышло около 3 литров, ем по 300 мл» — и получаете КБЖУ своей порции, а не среднего борща из справочника. Ветка «замены ингредиентов» рядом покажет, что изменится без зажарки или с грудкой вместо свинины.

4. Дневной итог

Стадия включается, когда вы добавляете второй-третий приём пищи или прямо спрашиваете «сколько за день». Навык складывает всё, что было названо в этом чате, показывает съеденное и примерный остаток. В описании действия стоит оговорка, которая тут не для красоты: «не дави и не стыди».

5. Уточнение и корректировка

Самая недооценённая стадия. Вы посчитали обед, а через час нашли упаковку и увидели, что творог был не 5%, а 9%. Правило действия: «Пересчитай только изменённую часть и обнови итог, явно отметь разницу». То есть навык не пересчитывает всё заново с нуля и не выдаёт новую таблицу, из которой непонятно, что поменялось, — он показывает дельту. Ветка так и называется: «сравнить до/после».

6. Поддержка без давления

Шестая стадия — не про еду, а про человека. Про неё отдельный раздел ниже, она здесь самая важная.
Шесть стадий КБЖУ-счётчика: ИИ определяет текущую сам, по последнему сообщению и истории чата

Главное: почему диапазон честнее точной цифры

В системной инструкции навыка есть строка, из-за которой он ведёт себя не так, как привычные счётчики: «Не заявляй абсолютную точность: КБЖУ зависит от бренда, веса, приготовления и базы данных». Разберём все четыре причины — и станет видно, что точная цифра в конце дня физически не может быть точной.

Вес: сырой или готовый

«Куриная грудка 200 г» — это две разные грудки. По таблице выходов при тепловой обработке Министерства сельского хозяйства США (USDA Table of Cooking Yields for Meat and Poultry) запечённая грудка бройлера даёт в среднем 72% от исходного веса при разбросе от 61 до 82%. То есть 200 г готовой грудки — это от 244 до 328 г сырой. Разница по белку и калориям здесь не в проценты, а в десятки процентов. Именно поэтому навык в стадии сбора спрашивает не «сколько», а «сколько и в каком виде».

Масло, которое никто не взвешивал

Столовая ложка растительного масла — это 15–17 г. По коэффициентам пересчёта из приложения 4 к ТР ТС 022/2011 жиры дают 9 ккал на грамм, значит ложка — это 135–155 ккал. Но на сковороде часть масла остаётся на сковороде, часть впитывается в еду, и сколько именно — не знает никто, включая вас. Салат с двумя ложками заправки и салат «с маслом» — расхождение в 300 ккал на ровном месте.

Бренд и жирность

«Сметана» — это и 10%, и 20%, разница вдвое. «Творог» — от обезжиренного до 9%. «Фарш» — от индейки до свинины с салом. Слово одно, продукт разный. Поэтому бренд и процент жирности стоят в чек-листе сбора данных рядом с весом: одно уточнение «Простоквашино 5%» убирает половину разброса.

И, наконец, сама этикетка

Здесь самое интересное, потому что цифра на упаковке кажется документом, а является оценкой. ТР ТС 022/2011 «Пищевая продукция в части её маркировки», пункт 12 части 4.9 статьи 4: «Показатели пищевой ценности пищевой продукции определяются изготовителем пищевой продукции аналитическим или расчётным путём». Расчётным — значит по рецептуре и справочникам, без лаборатории. Это законно.
Дальше пункт 13 и приложение 3 того же регламента разрешают округление: энергетическая ценность свыше 100 округляется до ближайшего числа, кратного 10; количество белков, жиров и углеводов от 0,5 до 10 г — до кратного 0,5 г, свыше 10 г — до целого грамма. А пункт 14 прямо позволяет добавить к пищевой ценности надпись «Средние значения». Самого допуска «насколько факт может расходиться с этикеткой» в ТР ТС 022/2011 нет вообще.
Зато допуски есть в соседних системах, и они показывают порядок величин. Руководство Европейской комиссии по допускам (Guidance Document on Tolerances, декабрь 2012) для белков, углеводов, сахаров и клетчатки: при содержании меньше 10 г на 100 г — допуск ±2 г (для жиров ±1,5 г), при 10–40 г на 100 г — ±20%, свыше 40 г — ±8 г. В США по 21 CFR 101.9(g) фактическое содержание калорий, жиров, сахаров и натрия не должно превышать заявленное более чем на 20%, а природные нутриенты должны составлять не менее 80% от указанного. В России для готовых блюд методические рекомендации Роспотребнадзора МР 2.3.0419-26 (утверждены 17.04.2026) считают допустимыми отклонения по белкам и энергетической ценности — 5%, по жирам и углеводам — 10%, по массе блюда — 3%.
И проверка реальностью. Крупное исследование Urban L.E. и соавторов (JAMA, 2011; 306(3):287–293) измерило энергетическую ценность 269 блюд из 42 ресторанов США. В среднем расхождение с заявленным оказалось мизерным — 10 ккал на порцию. Но 19% блюд — каждое пятое — содержали минимум на 100 ккал больше, чем было написано в меню. Это и есть суть вопроса: среднее по больнице сходится, а конкретная тарелка перед вами — как повезёт.
Отсюда вывод, ради которого всё это считалось. «520 ккал» — цифра, которая создаёт ощущение контроля и скрывает погрешность. «500–620 ккал, оценка» — цифра, которая показывает её размер. Складывая весь день точные значения, вы получаете красивую сумму с накопленной ошибкой, о которой ничего не знаете. Складывая диапазоны — видите, где именно вы не знаете, и можете уточнить самое важное: обычно это вес мяса, крупы и масло.
Четыре источника разброса и допуски, которые разрешают сами регуляторы

Как описать еду, чтобы счёт был точнее

Из механизма выше сами собой следуют четыре вещи, которые стоит называть: вес (и чей — сырой или готовый), способ приготовления, масло и соусы, бренд с процентом жирности. Остальное навык достроит сам. Правило простое: уточняйте то, что весит больше. Мясо, крупа и масло сокращают диапазон сильнее, чем десять уточнений про зелень.
Как это звучит на практике: Слабо → Точнее «съел курицу с рисом» → «грудка 180 г в готовом виде, жарил на 1 ст. л. подсолнечного масла; рис отварной 200 г, без масла» «овсянка с бананом» → «овсянка 60 г сухой крупы, сварена на воде; банан 120 г без кожуры; чайная ложка мёда» «салат» → «огурцы 100 г, помидоры 150 г, заправка — 2 ст. л. сметаны 20%» «творог» → «творог 5%, 200 г, без добавок»
Как это идёт вживую:
— Посчитай: тарелка борща и два куска хлеба. — Тарелка примерно 300 мл? И борщ на мясном бульоне или постный? — На свинине, со сметаной. — Тогда считаю так: [таблица], итог 360–420 ккал. Это оценка: без веса мяса и количества зажарки разброс останется. Добавить к итогу за день?

Фото еды и этикетки: что тут правда, а что нет

В инструкции навыка фото и этикетка упоминаются — как параметр, который можно уточнить, и в стадии сбора есть ветка «разобрать фото/этикетку». Но честный ответ такой: картинка в чате обрабатывается общим механизмом анализа вложений, а не этим навыком. Приложенное изображение уходит в отдельный обработчик файлов со своей инструкцией, и правила КБЖУ-счётчика — таблица, диапазон, пометка «оценка», добавление к дневному итогу — к нему автоматически не применяются. Плюс разбор вложений доступен только на платном тарифе Schai GPT.
Практический вывод: прикрепить фото тарелки или этикетки можно и разбор вы получите, но если вам нужен именно счёт по правилам навыка — перепишите с этикетки цифры «на 100 г» и вес порции текстом. Это займёт десять секунд и даст результат в нужном формате. Никаких баз со штрихкодами, сканера упаковок и синхронизации с фитнес-браслетами в навыке нет — и я не буду делать вид, что есть.

Дневник живёт в чате, а графики — в базе

Здесь важно не обмануться. Инструкция навыка говорит: «Для дневника питания держи контекст текущего дня в рамках чата». Это не вечное хранилище: пока вы в одной переписке, навык помнит все названные приёмы пищи и складывает их. Начали новый чат — счёт начался заново. Жить с этим просто: ведите день в одном разговоре, а вечером скажите итог одной фразой.
Зато графики переживают любой чат. У навыка четыре собственных показателя: калории (ккал), белки, жиры и углеводы (г); калории помечены главным и рисуются столбиками. Есть и защита от опечаток — дневные калории принимаются в диапазоне 400–8000, белки 5–400 г, так что случайные «18000 ккал» график не испортят.
И тут — деталь, о которой стоит знать заранее. В базу попадают только те числа, которые назвал сам человек: в инструкции извлечения замеров прямо написано «не бери числа из своих же ответов». То есть посчитанные ИИ 1900 ккал сами в график не лягут. Скажите «сегодня вышло 1900 ккал» — и точка появится. Это сделано против самоподтверждения: график должен показывать ваши данные, а не собственные оценки ассистента, выданные за факты.
Рядом живёт план — у этого навыка он называется «План по КБЖУ», а подсказка на пустой карточке звучит так: «Задай план по КБЖУ — буду сверяться с ним каждый день». План можно вести пунктами, отмечать пройденное и получать напоминания пушем. Как устроены графики и планы в других навыках — я разбирал на примере тренировок.

Стадия, из-за которой счётчик не превращается в надзирателя

Теперь про шестую стадию. В системной инструкции навыка она записана одной фразой, и я процитирую её дословно:
Не превращай подсчёт в давление или стыд. Если пользователь тревожится из-за еды или сильно ограничивает питание, переключайся на поддерживающий тон и советуй специалиста.
В сценарии это отдельная стадия со своим триггером: пользователь тревожится из-за еды, винит себя, сильно урезает калории или зациклен на контроле. Действие описано так: «Смягчи тон, убери стыд, предложи устойчивые шаги и при признаках РПП советуй специалиста». Следующий шаг — «предложи перейти от жёсткого подсчёта к мягким ориентирам», а ветки называются «мягкий учёт», «план без стыда», «обсудить со специалистом».
Почему это не вежливость, а инженерное требование. Счётчик калорий — это механизм с обратной связью, который каждый день выдаёт человеку оценку его поведения в виде числа. У большинства людей это работает как информация. У части — как усилитель: цифра становится поводом для самооценки, промах превращается в вину, а инструмент, который умеет только считать, молча подтверждает, что считать и надо, и чем строже, тем лучше. Счётчик, у которого нет способа заметить это и сменить режим, в такой ситуации не нейтрален — он на стороне навязчивого контроля.
Поэтому оговорка «не дави и не стыди» вшита и в стадию дневного итога, а не только в стадию поддержки. И поэтому же в самом навыке нет норм: он не говорит, сколько вам нужно калорий, не рассчитывает дефицит и не назначает цель. Считать и назначать — разные задачи, и в Schai GPT они разведены намеренно. Где вообще проходит граница между ИИ-помощником и специалистом — отдельный большой разговор, я разбирал его на примере навыка про здоровье.

Чем это отличается от навыка «Питание и рацион»

Два соседних навыка в одной категории, и их путают. Разница простая: один собирает систему, другой считает тарелку.
«Питание и рацион» ведёт длинный цикл: цель → контекст → ориентиры → меню → покупки и готовка → обратная связь. Он спрашивает про активность, режим дня, бюджет, вкусы и ограничения, собирает завтрак-обед-ужин-перекусы, список покупок и замены продуктов, а потом правит всё это по вашим отчётам о сытости и весе. У него есть отдельная стадия проверки рисков и прямой запрет подталкивать к экстремальному дефициту и голоданию.
«КБЖУ-счётчик» не занимается ничем из этого. Его цикл короткий и замкнутый на одном приёме пищи: распознать → уточнить → посчитать → обновить итог. Он не знает вашего роста, не спрашивает про цель и не предлагает меню на неделю.
Правило выбора укладывается в одну строку: «что мне есть» — это рацион, «сколько в этом» — это счётчик. Если вы начали в счётчике, а разговор ушёл в «а как мне вообще питаться» — скажите об этом, ИИ переключит навык. Обратный переход тоже работает: собрали меню в рационе, захотели узнать КБЖУ конкретного блюда — это уже сюда.

Коротко

Как это работает. Описываете еду словами — получаете таблицу продукт/порция/ккал/Б/Ж/У и итог. Данных мало — один уточняющий вопрос или сразу диапазон с пометкой «оценка».
Что умеет сверх обычного счётчика. Считать рецепт целиком и делить на порции и на 100 г. Пересчитывать только изменившуюся часть и показывать разницу. Складывать день в рамках чата, без давления и стыда.
Почему диапазон. Сырой и готовый вес расходятся на десятки процентов (у запечённой грудки выход 72% при разбросе 61–82%), масло на сковороде не взвешено, жирность у одного названия отличается вдвое, а цифра на упаковке по ТР ТС 022/2011 может быть получена расчётом и округлена до кратных 10 ккал. Точная цифра создаёт иллюзию, диапазон показывает размер погрешности.
Чего в навыке нет. Баз со штрихкодами, сканирования упаковок, синхронизации с фитнес-приложениями, норм калорий и рекомендаций по дефициту. Разбор фото идёт общим механизмом вложений, а не правилами навыка.
Что остаётся между разговорами. Названные вами числа — калории, белки, жиры, углеводы — ложатся точками на графики, а «План по КБЖУ» держит курс и напоминает о нём. Сам дневник живёт в рамках одного чата.

Источники

0

Пока нет комментариев

КБЖУ-счётчик в Schai GPT: как ИИ считает калории