Как я собрал персональный трекер здоровья на Hermes
Я перепробовал приложения для хранения анализов, но ни одно не забрало все мои 60 PDF за 7 лет. Поэтому собрал свой трекер здоровья на Hermes — AI-агенте, который работает на сервере. Он хранит анализы и рекомендации врачей, забирает вес, шаги и сон из Apple Health через Vitalport и показывает динамику.
Я достаточно мнительный в плане здоровья. Не так страшно, что что-то болит, как незнание. Поэтому взял за привычку проактивно ходить к врачам. Ну, если время позволяет и процедура нестрашная.
Почему не подошли приложения для хранения анализов
Перепробовал все приложения для хранения анализов, которые позволяют распарсить и в табличку поместить, но либо неудобные подписки. Либо они не могут взять все мои 60 пдфок за 7 лет.
На помощь пришел Hermes, это такой AI-агент, который работает на сервере: у меня куча анализов, рекомендаций от врачей, ощущений — и всё это разбросано по чатам, почте и голове.
Что умеет трекер здоровья на Hermes Agent
— Хранит всю историю в базе. Можно спросить «что было в марте»
— покажет динамику, сравнит периоды. Всех анализов и рекомендаций за все годы.
— Автоматическая выгрузка из Apple Health через Vitalport: приложение раз в сутки по вебхуку заливает на сервер вес, шаги, сон. Вес трекается через умные весы xiaomi.
— Скидываю, что ел, пил, курил. И как себя чувствую. Он фиксирует хронлогию.
— Забирает с почты всё, что врачи присылают: анализы, назначения. Всё в одном месте
Что дал персональный трекер здоровья
По сути получился персональный трекер здоровья, который работает сам. За вредными привычками следить стало проще.
Выдвигает сам гипотезы, что досдать и к какому врачу сходить. Пока еще не биохакинг, но маленький шажок в эту сторону. Назвал его «врач Борис».
Из чего состоит трекер на ИИ-агенте
Если разложить мою систему на части, получится четыре слоя. Источники данных, хранилище, агент и канал общения. Каждый слой можно заменить, не ломая остальные, и в этом главная разница с готовым приложением.
Источники — это почта с результатами из лабораторий, Apple Health и умные весы. Хранилище — обычная база данных на сервере, где каждая строка анализа лежит с датой, названием показателя, значением, единицей и референсным интервалом. Агент читает базу, отвечает на вопросы и сам пишет гипотезы. Канал — чат в мессенджере.
Сбор данных: почта, Apple Health и весы
Лаборатории вроде «Инвитро», «Гемотеста» или KDL присылают результаты PDF-файлом на почту. Агенту достаточно доступа к ящику по IMAP и правила: всё от этих адресов разбирать и класть в базу.
С Apple Health сложнее. У Apple нет серверного API к HealthKit, данные живут на телефоне. Поэтому нужен посредник на iPhone, который раз в сутки читает HealthKit и отправляет JSON на ваш сервер. У меня это Vitalport, но схема одна для любых похожих приложений: телефон отдаёт, сервер принимает вебхук.
Весы Xiaomi пишут вес в приложение Zepp Life, а оно умеет синхронизироваться с Apple Health. Отдельной интеграции с весами не нужно.
Hermes Agent как интерфейс к базе
Hermes Agent — ИИ-агент, который запускается на своём сервере, хранит память между разговорами и подключается к Telegram. Под капотом может работать любая языковая модель с поддержкой вызова инструментов.
Для трекера важно, что агент не просто болтает. Он делает SQL-запросы к базе, строит выборки по датам и сравнивает периоды. Вопрос «как менялся ферритин за три года» превращается в запрос, а не в пересказ по памяти модели.
Дневник привычек в чате
Четвёртый источник — я сам. Пишу в чат свободным текстом: что ел, сколько выпил, курил ли, как спал и как себя чувствую. Агент сам раскладывает сообщение на поля и ставит время.
Через пару месяцев такой хронологии видно связи, которые вручную не заметишь. Например, как вечерний кофе сдвигает сон по данным Apple Watch или как неделя командировок отражается на весе. Корреляция не доказывает причину, но даёт повод спросить врача.
Формат важен. Если дневник требует открыть приложение и заполнить пять полей, я брошу его за неделю. Одна строка в мессенджер — это пять секунд. Голосовое сообщение ещё быстрее: агент расшифрует его и разложит по тем же полям, что и текст.
Приложение для анализов или свой агент
Я перепробовал готовые приложения для анализов и упёрся в три вещи: подписка, лимит на загрузку и закрытый формат. Свой агент требует времени на настройку, зато данные целиком мои. Сравнение по тем параметрам, которые оказались важны мне:
| Параметр | Готовое приложение | Свой ИИ-агент на сервере |
|---|---|---|
| Архив за 7 лет и 60 PDF | Часто лимит загрузки или ручной ввод | Загружается скриптом за один раз |
| Где лежат данные | В облаке сервиса | На вашем сервере |
| Стоимость | Подписка | Сервер и токены модели |
| Свои источники (почта, весы, дневник) | Только то, что поддержал сервис | Любые, через API или вебхук |
| Вопросы в свободной форме | Редко | Основной сценарий |
| Порог входа | Скачать и войти | Нужно уметь поднять сервер |
Как ИИ разбирает PDF с анализами
Самая трудоёмкая часть — привести старые бланки к одной таблице. У разных лабораторий разные названия одного и того же показателя: «Глюкоза», «Glucose», «Глюкоза в плазме». Модель хорошо справляется с сопоставлением, если дать ей справочник и попросить вернуть строго JSON.
Сканы без текстового слоя сначала прогоняют через OCR, например Tesseract или встроенное распознавание в мультимодальной модели. Дальше каждый показатель проверяется: есть ли число, единица и дата. Строки, где модель не уверена, лучше отправлять на ручную проверку, чем молча сохранять.
Нормы и единицы измерения
Референсные интервалы зависят от лаборатории, пола и возраста. Поэтому норму стоит хранить рядом со значением из того же бланка, а не брать одну на все годы.
Единицы тоже плавают. Холестерин бывает в ммоль/л и мг/дл, витамин D — в нг/мл и нмоль/л. Без пересчёта график динамики покажет скачок, которого не было.
Где у такого трекера границы
Агент выдвигает гипотезы, что досдать и к какому врачу сходить. Диагноз он не ставит, и я не жду этого от него. Его работа — помнить всё и вовремя напоминать, решение остаётся за врачом.
Второй вопрос — приватность. Данные о здоровье по закону 152-ФЗ относятся к специальной категории персональных данных. Для личного проекта это повод держать базу на своём сервере, закрыть доступ по ключу и не отправлять в модель больше, чем нужно для ответа.
Третья граница — качество исходников. Если в базу попала ошибка распознавания, агент уверенно построит на ней вывод. Поэтому раз в несколько месяцев я бы сверял выборку с оригиналами.
С чего начать, если хочется так же
Если хочется повторить, я бы шёл в таком порядке. Короткий путь — неделя вечеров.
- Собрать все PDF с анализами в одну папку и выгрузить архив почты.
- Поднять недорогой VPS и базу данных, например PostgreSQL или SQLite.
- Написать скрипт разбора PDF в JSON и прогнать архив.
- Подключить Apple Health через приложение-посредник с вебхуком.
- Установить Hermes Agent, дать ему доступ к базе только на чтение и подключить Telegram.
- Добавить дневник: еда, сон, самочувствие короткими сообщениями в чат.
Вопросы и ответы
Что такое Hermes Agent?
Это AI-агент, который работает на сервере. На нём я собрал отдельного чат-бота для здоровья, которого назвал «врач Борис».
Как хранить все анализы в одном месте?
Мой бот сам забирает с почты всё, что присылают врачи: анализы и назначения. История лежит в базе, можно спросить «что было в марте» и сравнить периоды.
Как передать данные из Apple Health в свой трекер?
Я использую приложение Vitalport: раз в сутки оно по вебхуку заливает на сервер вес, шаги и сон. Вес трекается через умные весы Xiaomi.