С помощью фреймворка FastAPI реализовать API на основе вашего проекта "Атака фродеров" (этап 2) по алгоритмам.
endpoint | Тип запроса | Тело запроса | Действие | Примечание |
---|---|---|---|---|
/ |
GET | Возвращает сообщение Hello! This is the fraud detector. |
||
/cost/{error_type} |
GET | Возващает стоимость ошибки I или II рода в рублях (error_type должен принимает значения false-positive или false-negative ) |
См. раздел Константы в Этапе 2 | |
/loss/{baseline} |
GET | Оценивает потери маркетплейса при внедрении каждого бейзлайна в рублях (baseline должен принимать значения constant-fraud , constant-clean , first-hypothesis ) |
См. раздел Бейзлайн и оценка качества в Этапе 2 | |
/predict/{baseline} |
POST | Текст, для которого необходимо сделать предсказание fraud/clean {"text": "карты но водителя заявку и не закончилась сообщений ждать прошу отправителя Городе пытается Телеграм ее Получение ответьте написать передадим дозвонились. заберёт не транспортный дает получила"} |
Возвращает предсказание класса (fraud/clean) для заданного входного текста | См. раздел Бейзлайн и оценка качества в Этапе 2 |
README.md
с кратким описанием проектаpoetry.lock
иpyproject.toml
Makefile
(аналогично ДЗ#3)- Папка
app
main.py
с реализованными endpointsmodel_predict.py
с функциями для предсказания с помощью каждого из бейзлайновconstant-fraud
,constant-clean
,first-hypothesis
model_estimate.py
с функциями, оценивающими потери в рублях для каждого из бейзлайновconstant-fraud
,constant-clean
,first-hypothesis
schemas.py
со всеми необходимыми схемами
- Папка
tests
- Реализованы все enpoints - 4 балла
- В endpoint'ах
/cost/{error_type}
,/loss/{baseline}
,/predict/{baseline}
реализована правильная типизация параметров (только 2 возможных значения дляerror_type
и 3 дляbaseline
). Request/response bodies реализованы с использованиемpydantic.BaseModel
- 2 балла - Реализованы тесты на проверку корректности ответов функций, осуществляющих предсказания с помощью каждого из бейзлайнов - 2 балла
make lint
иmake test
запускаются без ошибок (приложить вывод в комментарии к PR) - 2 балла