Этот шаблон используется как пример для интеграции аналитического модуля от Цифровой след: Аналитика к системе Цифровое Портфолио
Для использования данного шаблона вы должны реализовать вашу аналитческую модель в виде python-модуля, который можно будет экспортировать и использовать, а также избавиться от "мусора" (кэш, .pynb файлы и т.д.)
Процесс интеграции модуля максимально упрощен для разработчика аналитики.
Логика кэширования ответов имплементирована на стороне Цифрового Портфолио. Кэширование самой модели должно быть реализовано в модуле (смотрите пример в src/module.py)
Обновление кэша (ответов и модели) также проходят по инициативе Цифрового Портфолио (для обновления кэша модели у вас должен быть релизован метод update . Смотрите пример в app.py)
Периодичность обновления кэша (ответов и модели) устанваливается по договоренности с администратором системы Цифровое Портфолио
Внимательно изучите комментарии в файлах в следующем порядке:
Измените данные файлы в соответсвие с вашей моделью, следую указанному в комментариях стандарту. Прочие файлы, которые необходимы для функционирования модели поместите в папку src.Также необходимо создать и заполнить файл .env который повторяет структуру .env.example. В примере можно заполнить следующими данными:
PORT = 7777
NAME = "portfolio-analytics-example"
SECRET = "I am invisible"
docker-compose up --build
Для тестиорвания можно использовать Postman или утилиту коммандной строки curl
Запрос:
curl --request POST http://127.0.0.1:7777/update
Ответ:
Succefully updated at 2022-03-04T00:33:40.707278
Запрос:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"studEmail": "m@mail.ru","beginDate": 20.02, "endDate": 23.02 }' \
http://127.0.0.1:7777/predict
Ответ:
Predicted for {'studEmail': 'm@mail.ru', 'beginDate': 20.02, 'endDate': 23.02}
By model :{'updated': '2022-03-04T00:33:40.707278'}
Secret is I am invisible
Not secret is I am visible%
После успешного локального развертывания и тестирования вам нужно обратиться к адиминстратору Цифрового Портфолио, чтобы он интегрировал ваш модуль в систему. Необходимо описать формат входных/выходных данных для каждого метода из app.py , а также обсудить время обновления кэша (ответов и модели)