Тестовая задача для Crystal Service Integration.
В соответствии с требованиями, в качестве фреймворка был выбран aiohttp.
POST /predict Content-Type: application/json
in: {"data":{},"classifier_name":""}
out: {"class":"1"}
-------------------------------------------
POST /upload_classifier Content-Type: multipart/form-data
in: pickle файл классификатора
Сервера
python main.py [port_number=8080]
Тестов
python -m unittest test.py
Естественно, сначала должна быть подготовлена virtualenv.
- Деплой.
Запаковать в докер, прописать конфигу для nginx.
- Написать пачку хороших тестов.
- Отслеживать какие конкретно ошибки кидает классификатор. Сейчас я ловлю всё подряд без разбора.
- Написать вменяемые доки к функциям.
- Метод predict у классификатора может выполняться довольно долго, поэтому в идеале обернуть его в Future или прикрутить очередь отложенных задач, но пока это не надо :)
- Логи во время тестов пишутся в тот же файл, что не круто.