avia_hack_2023
Auto Avia Offer
1. Введение
Целью проекта является создание системы ранжирования заявок (задание из хакатона Aeroclub Challenge 2023)
По факту является задачей бинарной классификации (будет ли добавлено / выбрано предложение в список на отправку или нет)
Лидерборд - ТОП 5 (4 место)
2. Структура проекта
data_utils
: содержит скрипт загрузки данных изGoogle Drive
data
содержит .xlsx / .csv файлы с изначальными данными с хакатона, обработанные данные после построения новых признаков. Каталог формируется после запуска скриптаget_data.py
изdata_utils
docs
содержит различные графики / скриншоты, а также презентацию (каталогpresent
)notebooks
содержит скрипты исследования (.py формата):research
: разведочный анализ данных, очистка данных, построение новых признаковhack_submission
: пайплайн предсказания на тестовых данных
service
содержит файлы FastAPI сервиса.tests
содержит тестовый скрипт проверки для api сервиса.
3. Установка
Убедитесь, что у Вас установлен Docker на локальной машине. В случае отсутствия, перейдите сюда и проследуйте по инструкции. Затем перейдите в командую строку и выполните следующие команды:
-
git clone https://github.com/unknowngfonovich/avia_hack_2023.git
-
Перейдите в каталог
/service
-
Создайте
.env
файл с двумя переменными (без символов <>)SERVICE_HOST
=<адрес хоста, обычно, 0.0.0.0>SERVICE_PORT
=<порт, например, 8001> -
В командой строке наберите следующую команду
docker build -t ranking_service .
4. Запуск
Перейдите в командую строку и выполните следующую команду:
docker run --rm -d --env-file .env -p 8001:8001 ranking_service
5. Пример использования
Если у вас есть Postman, выполните POST запрос к http://0.0.0.0:8001/predict_batch
с содержимым test_request.json
из tests/service_api_test
.
Ecли у вас нет Postman, перейдите к скрипту test_inference.py
в tests/service_api_test
,
выполните последовательно команды.
В ответ на запрос вы получите исходные данные с вероятностью и рангом (позицией) в выдаче внутри одного RequestID
Описание
Решение команды 'fit_predict' - сервис ранжирования предложений Auto Avia Offer
Языки
Python
- Dockerfile