> ## Documentation Index
> Fetch the complete documentation index at: https://docs.velesagent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Консультант по питанию

> Как устроена личность для доказательного и практичного консультирования по питанию, какие навыки ей нужны и где проходят медицинские границы.

# Консультант по питанию

`nutrition-adviser` — готовая личность Велеса для вопросов о составе продуктов, пищевых привычках, чтении этикеток, расчёте блюд и составлении выполнимого рациона.

Она является информационным помощником на основе искусственного интеллекта, а не врачом или дипломированным диетологом. Личность не ставит диагноз, не назначает лечебное питание, не меняет лекарства и не гарантирует результат. При заболеваниях, беременности, грудном вскармливании, детском возрасте, расстройствах пищевого поведения и других клинически значимых обстоятельствах она отделяет общую информацию от рекомендаций, требующих профильного специалиста.

<Warning>
  При признаках тяжёлой аллергической реакции, нарушении сознания, выраженном обезвоживании, опасном снижении сахара крови или другой возможной угрозе жизни консультант сначала предлагает вызвать экстренную помощь. В России используются номера `112` и `103`; язык сообщения не считается доказательством местонахождения пользователя.
</Warning>

## Что входит в комплект

Исходный текст личности находится в `examples/personalities/nutrition-adviser/`. Для неё используются два навыка работы с пищевыми базами и пять уже существующих медицинских навыков из каталога `https://github.com/alor-broker/skills`:

| Навык | Назначение |
| - | - |
| `pp-nutrition` | Состав обычных продуктов по USDA FoodData Central, сравнение на общей основе и расчёт состава блюда. |
| `pp-open-food-facts` | Сведения об упакованных продуктах по штрихкоду: состав, аллергены, добавки и показатели этикетки. |
| `medical-evidence-review` | Проверка значимых рекомендаций по действующим руководствам и исследованиям. |
| `entrez-search` | Поиск публикаций и биомедицинских записей в NCBI, включая PubMed. |
| `medical-lab-results` | Безопасное объяснение лабораторных результатов по единицам и интервалам конкретного отчёта. |
| `medication-reconciliation` | Сверка лекарств, добавок и аллергий без назначения или изменения дозы. |
| `medical-symptom-navigation` | Оценка срочности при симптомах без окончательного диагноза. |

Подробная маршрутизация описана на странице [Набор навыков консультанта по питанию](/skills/nutrition_suite_ru).

## Установка

Личность хранится в рабочей области как обычная пользовательская личность:

```text theme={null}
<рабочая-область>/personalities/nutrition-adviser/
  SOUL.md
  personality.json
  skills/
    pp-nutrition/
    pp-open-food-facts/
    medical-evidence-review/
    entrez-search/
    medical-lab-results/
    medication-reconciliation/
    medical-symptom-navigation/
```

Если личность уже создана через Nerve:

1. Создайте личность с именем «Консультант по питанию / Nutrition Adviser» и идентификатором `nutrition-adviser`.
2. Замените только содержимое `SOUL.md` текстом из `examples/personalities/nutrition-adviser/SOUL.md`. Не копируйте поверх созданный Nerve файл `personality.json`: в нём уже сохранены модель, уровень рассуждения и служебные даты.
3. Скопируйте семь перечисленных каталогов из репозитория навыков в `personalities/nutrition-adviser/skills/`.
4. Откройте новую сессию этой личности и убедитесь, что оба навыка доступны без предупреждения об отсутствующей командной программе.

Каждый навык содержит собственный ограниченный скрипт на Python и использует только стандартную библиотеку среды Велеса. Устанавливать Go, `nutrition-pp-cli`, `open-food-facts-pp-cli` или дополнительные библиотеки не требуется.

При полностью ручном создании каталога возьмите из примера `SOUL.md` и минимальный `personality.json`, затем добавьте каталоги навыков. Модель и уровень рассуждения выбираются позднее через Nerve.

Навыки размещаются внутри личности, а не в общем `<рабочая-область>/skills`, чтобы правила питания и медицинские ограничения не подключались ко всем личностям. Шаблон не создаётся автоматически при каждом запуске: удалённая пользователем личность не должна появляться снова, а обновление примера не должно перезаписывать пользовательскую редакцию.

## Источники пищевых данных

`pp-nutrition` основан на открытом навыке `mvanhorn/printing-press-library` и использует государственную базу [USDA FoodData Central](https://fdc.nal.usda.gov/api-guide/). Каждое значение должно быть связано с конкретной записью, состоянием продукта и единицей измерения. Сравнения и суммы, вычисленные локальным скриптом, показываются отдельно от полученных значений USDA.

`pp-open-food-facts` использует [Open Food Facts](https://openfoodfacts.github.io/openfoodfacts-server/api/). Чтение не требует учётной записи, но база наполняется сообществом и не гарантирует полноту или точность. Аллергены и другие значимые сведения всегда сверяются с текущей упаковкой; пустое поле не означает безопасность продукта.

Оба навыка адаптированы из исходной версии `829c1619a79b5a91d3e3b03cd9fbb43e5355b0b3`. Внешние программы заменены собственными скриптами на Python. В адаптации оставлены только ограниченные операции чтения; пищевого дневника, профилей, локальных файлов с ключами, вебхуков, отправки отзывов и изменения Open Food Facts в скриптах нет.

## Доступ и секреты

Для чтения Open Food Facts ключ не нужен. Сервис просит указывать отдельный контакт приложения в заголовке запросов; личный адрес пользователя нельзя подставлять без его прямого согласия.

USDA FoodData Central допускает общий `DEMO_KEY` с низким лимитом. Необязательный бесплатный `FDC_API_KEY` настраивается через зашифрованное хранилище Велеса. Навык не читает `.env` и не сохраняет ключ в собственном файле программы.

Скрипт USDA получает ключ только через переменную `FDC_API_KEY`, которую Велес передаёт из зашифрованного хранилища. Передача ключа в аргументе команды и чтение файла `.env` не поддерживаются.

## Как консультант принимает решения

* Сначала определяется цель пользователя и только те обстоятельства, которые действительно меняют ответ.
* Состав продукта, расчёт и рекомендация показываются как разные уровни вывода.
* Для расчёта уточняются сырой или готовый продукт, способ приготовления, съедобная масса, размер порции и марка, когда она важна.
* Калорийность и состав блюда обозначаются как оценка с источником, округлением и пропущенными ингредиентами.
* Универсальные нормы белка, воды, калорий и добавок не назначаются без подходящего метода и применимого источника.
* Клинически значимые советы проверяются по стране, дате, группе людей и действующей версии источника.
* Экстремальное ограничение, очищение, опасное голодание и быстрое похудение не оптимизируются и не представляются нормальным поведением.
* Еда не делится на морально «хорошую» и «плохую»; предпочтение отдаётся небольшим устойчивым изменениям.

## Конфиденциальность и память

Личность использует обычную историю, файлы и долговременную память Велеса. Отдельное анонимное хранилище, медицинская карта или изоляция от других личностей не создаются.

Пищевой дневник, масса тела, диагнозы, лабораторные результаты и выведенные предпочтения не записываются намеренно без прямой просьбы пользователя, понятного места хранения и ясной цели. Для обращения к пищевым базам передаются только минимальные названия продуктов и идентификаторы, а не медицинская история человека.

## Связанные страницы

* [Личности](/basics/personalities_ru)
* [Набор навыков консультанта по питанию](/skills/nutrition_suite_ru)
* [Набор медицинских навыков](/skills/medical_suite_ru)
* [Поиск в NCBI](/skills/entrez_search_ru)
* [Секреты и токены](/basics/secrets_ru)
* [Память Велеса](/basics/memory_ru)
