Небольшое микросервисное приложение, созданное для практики использования Docker. Оно представляет собой сайт, на котором можно получить текстовое описание аудиозаписи.
Оно состоит из 5 основных частей:
- interface. Простой веб-интерфейс, написанный на Flask. Инкапсулирует в себе загрузку wav и выбор параметров генерации.
- controller. Веб-приложение, написанное на Flask, ответственное за обработку данных, взаимодействие с моделью, кэшем и базой данных.
- model. Веб-приложение, написанное на Flask. Модель, которая готовит описания аудиозаписей. Взята с Hugging Face Transformers, ссылка.
- cache. Redis база данных, выполняющая роль кэша: туда записываются результаты успешных генераций для дальнейшего переиспользования.
- db. Mongodb, куда записываются результаты всех генераций.
Каждая из частей запускается в отдельном docker-контейнере с помощью docker compose. Задача описания аудио выбрана из-за интереса к аудиомоделям и наличия в открытом доступе легковесных моделей, решающих ее с приемлемым качеством. Проект имеет довольно общую структуру и с небольшими изменениями легко может быть применен к другим задачам .
С помощью gunicorn и nginx сделать приложение доступным для Интернета.

