- Нужен Docker и docker-compose
- Выполнить команду
npm start up:compose
- Первый раз могут довольно долго собираться образы, последующие запуски будут быстрыми
- После того как все стартует можно смотреть приложение:
- Использован один язык для написания backend и frontend - TypeScript
- Управление монорепозиторием Nx
- Frontend - Angular (Ant design, State management)
- Backend (NodeJs, NestJs, TypeOrm)
- База данных Postgres
- Контейниризация Docker
- Деплой Kubernetes, Helm, Gitlab CI/CD
- Для ML использовался python и jupyter notebooks
- Нужны nodejs, npm, docker
- Установить зависимости командой
npm i
- Настроить коннект к серверу баз данных и создать базу данных
- Запуск контейнера с базой данных
npm start up:compose
- Остановка контейнера с базой данных
npm start down:compose
- Остановка контейнера с базой данных
- Запустить с помощью команды
npm start
(для запуска всех сервисов)- Или для старта бэкенда отдельно
npm run start:api
- Или для старта фронта отдельно
npm run start:fe
- Или для старта бэкенда отдельно
- apps/ - тут лежит основной код сервисов
- config/ - .env файлы для бэкенд сервисов
- deploy/ - docker файлы и конфиги для деплоя в kubernetes
- libs/ - исходных код для общих библиотек в проекте
- ml-sandbox/ - код на python для сбора данных и эксперементы с модельками
установить tsnode глобально:
npm i -g ts-node
Сгенерить миграцию по схеме:
npm run typeorm -- migration:generate -n MigrationName
Добавить созданную миграцию в массив с миграциями (all.migations.ts)
Все наработки в том числе сбор данных лежит в папке /ml-sandbox
Были попытки использовать модели fasttext и tfidf, работающую модель собрать не получилось, поэтому матчинг делается по расстояние левенштейна по ключевым словам и так же проводится ручной параметрический и частотный анализ данных и их оценка.
Предиктивная система конструктора построена на частотном анализе и анализе расстояния левенштейна
Все датасеты деперсонализированы и получены из открытых источников.