# API модели ## Цель Создать FastAPI-сервис с валидацией, healthcheck и batch prediction. ## Теория перед выполнением - [Инференс: FastAPI, Docker, ONNX и эксплуатационные свойства](../notes/02_inference_api_docker_onnx.md) - [Production-контракты и тесты](../notes/01_production_project_contracts_testing.md) ## Что сделать 1. Описать версионированные схемы одиночного и batch-запроса и ответа. 2. Загрузить проверенный модельный bundle один раз при старте приложения. 3. Реализовать prediction endpoint, liveness и readiness. 4. Ограничить диапазоны, размер batch и недопустимые дополнительные поля. 5. Добавить contract-тесты для корректных, граничных и ошибочных запросов. 6. Привести команды запуска и примеры запросов в [отчёте](../../../common/REPORT_TEMPLATE.md). ## Результат API, тесты контрактов и примеры запросов. Решение разместите рядом в `solution/`. Не коммитьте большие данные, веса или секреты. ## Критерии приёмки - Неверные данные дают 4xx; модель грузится один раз; ответы имеют версию. - Код читаем, разбит на функции и запускается по инструкции. - Выводы подтверждаются измерениями и не выходят за пределы эксперимента. ## Вопросы для самопроверки - Чем liveness отличается от readiness? - Что произойдёт при неизвестном поле, NaN и слишком большом batch? - Как ответ позволяет установить версию модели? - Почему `async` не ускоряет CPU-bound инференс автоматически?