/csi_task

Primary LanguagePython

Задача для CSI

Тестовая задача для 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.

TODO

  • Деплой.

Запаковать в докер, прописать конфигу для nginx.

  • Написать пачку хороших тестов.
  • Отслеживать какие конкретно ошибки кидает классификатор. Сейчас я ловлю всё подряд без разбора.
  • Написать вменяемые доки к функциям.
  • Метод predict у классификатора может выполняться довольно долго, поэтому в идеале обернуть его в Future или прикрутить очередь отложенных задач, но пока это не надо :)
  • Логи во время тестов пишутся в тот же файл, что не круто.