MGWS - веб сервіс, на якому користувач може прослуховувати музику згенеровану глубокою нейронною мережею типу "трансформер". Детальніше в цьому ноутбуці. Данні використані для "тюнингу" моделі можна скачати за посиланням
Для вебсервісу використовувалися такі фреймворки:
- Серверна частина (python3):
- Клієнтська частина (js):
- Нейронна мережа (python3):
Розробити вебсервіс, на якому користувач може слухати згенеровану нейронною мережею музику.
- кілька жанрів музики на вибір.
- можливість отримання згенерованої музики сторонніми сервісами через REST API:
- GET api/generate
- POST api/generate
Ендпоінт приймає такі параметри:
- temperature -- чим більше temperature, тим більш різноманітний результат
- top_k -- вибрати краций результат з top_k разів
- include_prefix -- чи включити у результат сам префікс
- prefix -- початкова точка генерації
- JsDoc
>> cd client
>> npm run docs
- PythonDoc
>> cd docs/PythonDoc
>> make html
>> sphinx-build -b rinoh source _build/rinoh
Веб-сервіс побудований як SPA, зразок головної сторінки
- // що залишилося реалізувати
За допомогою бібліотеки pytest та pytest-asyncio запускаємо тести командою:
>> pytest tests.py
Також автоматично тестування запускається після кожного коміту за допомогою інтеграції з Travis-ci
Успішно розгорнути проект можна:
>> git clone https://github.com/n4mespace/MusicGenerationWebService
>> pip3 install poetry
>> cd server && poetry install && cd ../
>> nvm install v12.6
>> cd client && npm install && cd ../
>> chmod +x dev.sh
>> ./dev.sh
- За допомогою Docker:
>> git clone https://github.com/n4mespace/MusicGenerationWebService
>> DOCKER_BUILDKIT=1 docker build -t mgws:latest .
та після білда запустити командою:
>> docker run --name mgws -it -p 8000:8000 --rm mgws:latest -e WORKER_NUM=1
За допомогою розробки цього проекту покращив не тільки теоретичні знання в сфері програмування на python3 та js, але й набув нових навичок у використанні різних бібліотек для побудови веб-сервісу, також поглибив знання у сфері NLP