CoolFace
Apppublic

hellower/diary-predictor

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
README.md288 linesDownload Raw Back to root
1---2title: Diary Predictor - Health Forecast API3emoji: 🏥4colorFrom: blue5colorTo: green6sdk: docker7sdk_version: latest8app_file: app.py9pinned: false10---11 12# Diary Predictor - Health Forecast API13 14Production-ready Flask приложение для прогнозирования состояния здоровья на основе исторических данных с использованием LSTM нейронных сетей.15 16## Возможности17 18- 🤖 AI-прогнозирование состояния здоровья с использованием LSTM19- 🚨 Автоматическое обнаружение критических состояний20- 📊 Анализ трендов по множественным параметрам21- 🔍 Health check endpoints для мониторинга22- 📝 Структурированное логирование23- 📚 Swagger/OpenAPI документация с интерактивным UI24 25## Технологии26 27- **Flask** - веб-фреймворк28- **TensorFlow/Keras** - LSTM нейронные сети29- **Pandas/NumPy** - обработка данных30- **Scikit-learn** - предобработка данных31- **Gunicorn** - WSGI сервер для production32- **Docker** - контейнеризация33- **Flasgger** - Swagger/OpenAPI документация34 35## API Документация36 37### Swagger UI38 39Интерактивная документация API доступна по адресу:40- **Локально**: `http://localhost:5000/docs` или `http://localhost:7860/docs`41- **Hugging Face Spaces**: `https://<your-username>-diary-predictor.hf.space/docs`42 43Swagger UI предоставляет:44- Полное описание всех эндпоинтов45- Интерактивное тестирование API46- Примеры запросов и ответов47- Схемы данных48 49### API Endpoints50 51### Health Check52```bash53GET /health54```55 56**Ответ:**57```json58{59  "status": "healthy",60  "service": "diary_predictor",61  "version": "1.0.0"62}63```64 65### Health Forecast66```bash67POST /api/v1/health/forecast68Content-Type: application/json69```70 71**Запрос:**72```json73{74  "history": [75    {76      "date": "2024-01-01",77      "systolic_pressure": 120,78      "diastolic_pressure": 80,79      "pulse": 70,80      "temperature": 36.6,81      "weight": 70.0,82      "wellbeing": 5,83      "sleep_hours": 884    },85    {86      "date": "2024-01-02",87      "systolic_pressure": 125,88      "diastolic_pressure": 82,89      "pulse": 72,90      "temperature": 36.7,91      "weight": 70.1,92      "wellbeing": 5,93      "sleep_hours": 7.594    }95  ]96}97```98 99**Успешный ответ:**100```json101{102  "status": "OK",103  "risk_level": "LOW",104  "forecast_date": "2024-01-08",105  "forecast": {106    "systolic_pressure": 122.5,107    "diastolic_pressure": 81.0,108    "pulse": 71.0,109    "temperature": 36.6,110    "weight": 70.2,111    "wellbeing": 5.0,112    "sleep_hours": 7.8113  },114  "alerts": [],115  "recommendation": "Тренды в норме."116}117```118 119**Критическое состояние:**120```json121{122  "status": "CRITICAL",123  "alerts": [124    "CRITICAL: systolic_pressure is 165.0 (Call Doctor!)"125  ],126  "forecast": null,127  "recommendation": "Немедленно обратитесь за медицинской помощью."128}129```130 131## Развертывание на Hugging Face Spaces132 133### Шаг 1: Создание Space134 1351. Перейдите на [Hugging Face Spaces](https://huggingface.co/spaces)1362. Нажмите **"Create new Space"**1373. Заполните форму:138   - **Space name**: `diary-predictor` (или любое другое)139   - **SDK**: выберите **Docker**140   - **Hardware**: выберите подходящий вариант (CPU Basic бесплатно)141   - **Visibility**: Public или Private142 143### Шаг 2: Загрузка кода144 145После создания Space, загрузите код:146 147```bash148# Клонируйте ваш Space репозиторий149git clone https://huggingface.co/spaces/<your-username>/diary-predictor150cd diary-predictor151 152# Скопируйте все файлы проекта в эту директорию:153# - app.py154# - config.py155# - requirements.txt156# - Dockerfile157# - services/ (папка с ai_engine.py)158# - README.md159 160# Закоммитьте и запушьте161git add .162git commit -m "Initial commit: Diary Predictor API"163git push164```165 166### Шаг 3: Автоматическая сборка167 168Hugging Face Spaces автоматически:169- Соберет Docker образ из `Dockerfile` (5-10 минут)170- Установит все зависимости из `requirements.txt`171- Запустит приложение на порту 7860172- Проксирует трафик через HTTPS173 174### Шаг 4: Проверка работы175 176После успешной сборки, проверьте:177 178```bash179# Health check180curl https://<your-username>-diary-predictor.hf.space/health181 182# Swagger документация (откройте в браузере)183# https://<your-username>-diary-predictor.hf.space/docs184 185# Тестовый запрос прогноза186curl -X POST https://<your-username>-diary-predictor.hf.space/api/v1/health/forecast \187  -H "Content-Type: application/json" \188  -d '{189    "history": [190      {191        "date": "2024-01-01",192        "systolic_pressure": 120,193        "diastolic_pressure": 80,194        "pulse": 70,195        "temperature": 36.6,196        "weight": 70.0,197        "wellbeing": 5,198        "sleep_hours": 8199      },200      {201        "date": "2024-01-02",202        "systolic_pressure": 125,203        "diastolic_pressure": 82,204        "pulse": 72,205        "temperature": 36.7,206        "weight": 70.1,207        "wellbeing": 5,208        "sleep_hours": 7.5209      }210    ]211  }'212```213 214### Важные замечания215 216- **Порт**: Приложение автоматически использует порт 7860 (стандарт для Spaces)217- **Логи**: Доступны в интерфейсе Spaces в разделе "Logs"218- **Обновления**: Просто делайте `git push` - Spaces пересоберет автоматически219- **Таймауты**: Запросы должны завершаться за 60 секунд (для бесплатных Spaces)220 221### Troubleshooting222 223**Ошибка сборки:**224- Проверьте логи в интерфейсе Spaces225- Убедитесь, что `Dockerfile` корректен226- Проверьте `requirements.txt`227 228**Приложение не отвечает:**229- Убедитесь, что приложение слушает на `0.0.0.0:7860`230- Проверьте health endpoint: `/health`231- Посмотрите логи в интерфейсе Spaces232 233**Медленная работа:**234- TensorFlow может быть медленным на CPU235- Рассмотрите GPU Space (требует подписки)236- Оптимизируйте модель237 238## Структура проекта239 240```241diary-predictor/242├── app.py                 # Главный файл приложения243├── config.py              # Конфигурация244├── requirements.txt       # Python зависимости245├── Dockerfile             # Docker образ для Spaces246├── README.md              # Документация247└── services/248    ├── __init__.py249    └── ai_engine.py       # AI сервис для прогнозирования250```251 252## Переменные окружения253 254| Переменная | Описание | По умолчанию |255|------------|----------|--------------|256| `DEBUG` | Режим отладки | `False` |257| `PORT` | Порт приложения | `7860` (для Spaces) |258| `HOST` | Хост приложения | `0.0.0.0` |259| `LOOK_BACK_DAYS` | Количество дней для анализа | `7` |260| `LOG_LEVEL` | Уровень логирования | `INFO` |261 262## Локальная разработка263 264```bash265# Установите зависимости266pip install -r requirements.txt267 268# Запустите в режиме разработки269export DEBUG=True270python app.py271```272 273## Безопасность274 275- ✅ Приложение запускается от непривилегированного пользователя в Docker276- ✅ Валидация входных данных277- ✅ Обработка ошибок278- ✅ Структурированное логирование279- ⚠️ Для production добавьте:280  - Rate limiting281  - Authentication/Authorization282  - HTTPS/TLS283  - CORS настройки284 285## Лицензия286 287MIT288