Skip to content

Backend part of an ML application for calculating product sales forecasts.

License

Notifications You must be signed in to change notification settings

STI-xa/Backend_Lenta

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image image image image image image image image

Hackathon_lenta_backend

Backend часть для проекта хакатона Практикум х Лента. Основной функционал всего проекта- создать интерфейс и алгоритм прогноза спроса на 14 дней для товаров собственного производства сети Лента.

Как работает:

  1. Бэкенд отдаёт данные на фронтенд. По запросу от фронта идёт в БД, выбирает необходимые данные, подгототавливает (если требуется), отдаёт в ответе на запрос.
  2. Добавление фактических данных. Принимает входящий запрос на добавление исторических данных по продажам, обрабатывает их и складывает в БД.
  3. Запускает и управляет процессом инференса. По расписанию (раз в день) или после обновления исторических данных начинает процесс прогнозирования. Для этого идёт в БД, выбирает необходимые данные, передаёт их в ML сервис, получает прогноз и складывает его в БД.

Что внутри:

  • API сервис для взаимодействия с фронтендом и ML моделью.
  • Контейнеризация для организации микросервисной структуры, связь фронтенда и модели прогнозирования.

Как запустить проект:

Запуск из контейнера:

  • Клонировать репозиторий и перейти в папку infra в командной строке:
git clone https://github.com/anstane/lenta_backend

cd infra
  • Создаем в папке infra .env файл и записываем переменные окружения.

Шаблон наполнения env-файла:

DB_ENGINE=django.db.backends.postgresql # указывает, с какой БД работать
DB_NAME=postgres # имя БД
POSTGRES_USER=postgres # логин для подключения к БД
POSTGRES_PASSWORD=postgres # пароль для подключения к БД (установите свой)
DB_HOST=db # название сервиса (контейнера)
DB_PORT=5432 # порт для подключения к БД
  • Создание и запуск контейнеров:
docker-compose up --build
  • Создаем дамп БД:
docker-compose exec backend python manage.py dumpdata > fixtures.json

Образ доступен на DockerHub


Примеры запросов:

POST-запрос для логина

http://127.0.0.1:8000/api/v1/auth/token/login/
{
password	Password[...]
username	Username[...]
 
}

GET-запрос для получения прогноза

http://127.0.0.1:8000/api/v1/forecast/{id}/
{
store*	Store[...]
sku*	Sku[...]
forecast_date	Forecast date[...]
forecast	Forecast[...]
 
}

GET-запрос на получение списка магазинов

http://127.0.0.1:8000/api/v1/shops/
{
store*	Store[...]
city*	City[...]
division*	Division[...]
type_format*	Type format[...]
loc*	Loc[...]
size*	Size[...]
is_active*	Is active[...]
 
}

imagedc462967381d48d9.png image-1.png image-2.png

Разработчики:

Михаил Московкин - Разработчик

Полина Николаева - Разработчик

About

Backend part of an ML application for calculating product sales forecasts.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.3%
  • Shell 1.4%
  • Dockerfile 1.3%