В репозитории находится пример того, как можно написать фронтенд для своего ML сервиса.
Используется только pyton код. Это не идеальное решение, оно показывает как можно быстро написать работающий UI для бэкэнда.
Весь код написан на фреймворке Streamlit. Связь с бэкендом построена на библиотеке requests. Для сборки запроса используются pydantic модель. Все можно поднять в докер контейнере и обновлять независимо от бэкенда. Базовая конфигурация через переменные окружения и штатный streamlit конфиг.
- Интерфейс --
Streamlit - Отправка запросов --
requests - Модель данных для запроса --
pydantic - Контейнеризация --
Dcoker + docker-compose
Для запуска контейнера с сервисом и всей инфраструктурой:
git clone <repo address>cd ml-service-frontendcp template.env .env-- создать копию файла template.env с именем .env- Изменить при необходимости переменные окружения
- При необходимости отредактировать файл
/.streamlit/config.toml docker-compose up --build-- запуск контейнера- Адреса: UI -- http://localhost:8001
Для локального запуска:
git clone <repo address>cd ml-service-frontendpython3 -m venv venv-- подготовка виртуального окруженияsource venv/bin/activate-- активация окруженияpip install -r requirements.txt-- установка зависимостейcp template.env .env-- создать копию файла template.env с именем .env- Изменить при необходимости переменные окружения
- При необходимости отредактировать файл
/.streamlit/config.toml streamlit run main:app-- запуск сервиса
В директории
dataесть файл, который можно использовать в качестве тестового примера !
Подробнее про то, что такое Streamlit как им пользоваться и соединить бэкенд и UI я написал в этом посте: https://mvrck.space/posts/ui-for-ml-service/