Как я создал мобильное приложение Healtify: разбираем анализы с помощью ИИ
От OCR и PDF до персонального ассистента — как работает мобильное приложение, для кого и как оно создано
Хочу рассказать про Healtify — мобильное приложение, которое я разработал, чтобы медицинские анализы стали понятнее и полезнее. Это не просто трекер, а инструмент с искусственным интеллектом, который читает результаты анализов, объясняет их и даёт рекомендации. Идея родилась из личной проблемы: медицинские анализы часто выглядят как набор цифр без смысла. Я решил это исправить. Вот как всё работает и что получилось.
Проблема: анализы — это хаос
Однажды я получил результаты анализов от лаборатории: гемоглобин 134+, эритроциты 5.20+, гематокрит 39.5+. Цифры есть, а понимания — нет. Без врача или часов в интернете разобраться почти невозможно. Лаборатории выдают таблицы или PDF-файлы, но не объясняют, что с этим делать. Сколько раз вы тоже смотрели на листок с анализами и чувствовали себя потерянными? Интернет либо путает противоречивыми данными, либо пугает несуществующими диагнозами. Мне захотелось сделать инструмент, который сам всё считает, структурирует и объясняет.
Да, можно воспользоваться ИИ-моделями широкого потребления, которые помогут, но не работают без VPN, и/или с радостью обработают ваши персональные данные. Это уже другая история.
Решение: OCR, JSON и нейросети
1. Чтение анализов с любого носителя
Сначала нужно было научить приложение "видеть" текст — с фото, сканов или PDF. Для PDF точность распознавания высокая, а вот с изображениями сложнее. Я выбрал Tesseract.js — инструмент оптического распознавания символов (OCR) с открытым кодом. Но снимки анализов часто неидеальны: тени, низкий контраст, мелкий шрифт. Tesseract сам по себе не справлялся.
Тогда я подключил Sharp — библиотеку для обработки изображений. Она увеличивает размер фото, повышает контраст, убирает шум и усиливает резкость. Пример: на мятом листе глюкоза "5.8 ммоль/л" без Sharp читалась с ошибками в 15% символов, а с Sharp — с точностью 95%. Теперь даже кривые снимки распознаются.
2. Превращение хаоса в порядок: данные в JSON
После распознавания текста нужно было привести данные в порядок. Лабораторные бланки — это хаос: показатели, единицы измерения и нормы перемешаны. Я написал кастомный парсер, который разбирает текст и превращает его в структурированный JSON. Например, из строки "Глюкоза 5.8 ммоль/л (3.3-5.5)" получается: { "indicator": "Глюкоза", "value": 5.8, "unit": "ммоль/л", "reference_range": { "min": 3.3, "max": 5.5 } }.
Теперь часть информации организована и готова к использованию. Это не просто техническая деталь — это основа, которая позволяет искусственному интеллекту эффективно обрабатывать данные.
3. Нейросети для выводов
Дальше — самое интересное. ИИ не просто проверяет, в норме ли показатели, а анализирует их в комплексе. Например, сахар 5.8 при норме до 5.5. Обычный инструмент сказал бы: "Повышен, идите к врачу". А мой смотрит шире: проверяет другие показатели (гликированный гемоглобин, триглицериды) и объясняет: "Сахар немного выше нормы, возможно, из-за еды. Если это стабильно, проверьте углеводный обмен". Такой подход делает анализ осмысленным.
4. Глубокий анализ одним нажатием
Одна из самых крутых фич — кнопка "Think" в разделе "Анализы". Нажимаете — и нейросеть выдает развернутый отчет. Почему показатели вышли за норму? Что это значит для вашего организма? Что можно сделать прямо сейчас? Пример: у вас гемоглобин 110 г/л при норме от 120. Вместо банального "у вас анемия" вы получите:
- Причины: "Низкий гемоглобин может быть связан с дефицитом железа, витамина B12 или скрытым кровотечением".
- Последствия: "Это влияет на доставку кислорода к тканям, из-за чего вы можете чувствовать усталость".
- Советы: "Добавьте в рацион печень, шпинат или гречку, но сначала сдайте анализ на ферритин, чтобы подтвердить причину". Это как консультация с врачом, только быстрее и всегда под рукой.
5. ИИ-ассистент: ответы на любые вопросы
Что, если вам нужно больше информации? Мы встроили ИИ-ассистента — это чат, где вы можете спросить что угодно. "Почему у меня высокий холестерин?", "Как повысить уровень железа?", "Стоит ли волноваться из-за лейкоцитов 8.5?". Модель ассистента обучена на медицинских данных и отвечает моментально, без воды и страшилок. Ассистент не заменяет врача, но экономит время на его посещении, помогает разобраться в базовых вещах и подготовиться к консультации с нужными вопросами.
Технический хардкор: Что под капотом
Для тех, кто любит копаться в деталях, вот как я это собирал:
- OCR: Tesseract.js для распознавания текста с любых бланков.
- Обработка изображений: Sharp для подготовки фото к анализу.
- Парсинг: Собственный алгоритм, превращающий текст в JSON.
- Нейросеть: Модель на базе GPT для анализа и генерации рекомендаций.
- Фронтенд: React Native — чтобы работало и на Android, и на iOS (скоро!).
- Бэкенд: Next.js с API для быстрой обработки запросов.
Healtify — это попытка сделать медицинские анализы понятными без врача под боком. Пока проект развивается, и я открыт к идеям. Что бы вы добавили? Какие функции пригодились бы? Делитесь мыслями — это помогает двигаться дальше.
P.S. Следите за процессом в Telegram-канале — там делюсь новостями разработки.