Этот проект представляет собой ML-сервис для предсказаний по изображениям, который позволяет пользователям загружать изображения и получать предсказания, используя несколько моделей машинного обучения, включая ResNet50 и EfficientNet-B0.
Доступ к сервису возможен через REST API (Postman) или веб-интерфейс.
git clone https://github.com/LuckyAm20/MLPredictionService.git
cd MLPredictionServiceПеред запуском необходимо настроить DVC и скачать модели.
Проинициализировать, аналогично config и config-example.local
dvc pullМодели будут загружены в models/, и сервис сможет их использовать.
docker-compose up --buildЭто развернёт:
- FastAPI сервер (ML API & Web)
- RabbitMQ (очередь задач)
- PostgreSQL (База данных)
- Два воркера (обрабатывают ML-задачи)
- Nginx (обратный прокси для веб-интерфейса)
✔ Регистрация / Авторизация (JWT-токены)
✔ Пополнение баланса
✔ Выбор ML-модели для предсказаний
✔ Загрузка изображений для предсказаний
✔ Асинхронная обработка предсказаний через RabbitMQ
✔ История транзакций и предсказаний
✔ Доступ через API или веб-интерфейс
Сервис поддерживает REST API, доступный для тестирования через Postman или curl.
POST /user/signup{
"username": "test_user",
"password": "securepassword"
}{
"message": "Регистрация успешна",
"user_id": 1
}POST /user/token{
"username": "test_user",
"password": "securepassword"
}{
"access_token": "your-jwt-token",
"token_type": "bearer"
}Этот токен нужно добавлять в заголовок всех последующих запросов:
Authorization: Bearer your-jwt-tokenPOST /user/balance/deposit/{amount}POST /user/balance/deposit/100{
"message": "Баланс успешно пополнен",
"transaction_id": 5,
"new_balance": 100.0
}POST /user/select_model{
"model": "efficientnet_b0"
}{
"message": "Вы выбрали модель efficientnet_b0"
}POST /prediction/curl -X 'POST' 'http://localhost:8080/prediction/' \
-H 'Authorization: Bearer your-jwt-token' \
-F 'file=@your-image.jpg'{
"message": "Задача отправлена в очередь",
"prediction_id": 12
}GET /prediction/{prediction_id}{
"prediction_id": 12,
"model": "resnet50",
"image_path": "path/to/image.jpg",
"result": "golden retriever",
"status": "completed"
}Этот ML-сервис позволяет загружать изображения, выполнять предсказания и анализировать результаты через API или веб-интерфейс.
Система поддерживает разные ML-модели, асинхронную обработку задач через RabbitMQ, и хранение данных в PostgreSQL.
📧 Email: mr.amix@mail.ru