В репозитории находится пример того, как можно написать фронтенд для своего ML сервиса.
Используется только pyton
код. Это не идеальное решение, оно показывает как можно быстро написать работающий UI для бэкэнда.
Весь код написан на фреймворке Streamlit
. Связь с бэкендом построена на библиотеке requests
. Для сборки запроса используются pydantic
модель. Все можно поднять в докер контейнере и обновлять независимо от бэкенда. Базовая конфигурация через переменные окружения и штатный streamlit конфиг.
- Интерфейс --
Streamlit
- Отправка запросов --
requests
- Модель данных для запроса --
pydantic
- Контейнеризация --
Dcoker + docker-compose
Для запуска контейнера с сервисом и всей инфраструктурой:
git clone <repo address>
cd ml-service-frontend
cp template.env .env
-- создать копию файла template.env с именем .env- Изменить при необходимости переменные окружения
- При необходимости отредактировать файл
/.streamlit/config.toml
docker-compose up --build
-- запуск контейнера- Адреса: UI -- http://localhost:8001
Для локального запуска:
git clone <repo address>
cd ml-service-frontend
python3 -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/