Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦾 ML Prediction Service

Этот проект представляет собой ML-сервис для предсказаний по изображениям, который позволяет пользователям загружать изображения и получать предсказания, используя несколько моделей машинного обучения, включая ResNet50 и EfficientNet-B0.
Доступ к сервису возможен через REST API (Postman) или веб-интерфейс.


📥 Установка и настройка

1️⃣ Клонирование репозитория

git clone https://github.com/LuckyAm20/MLPredictionService.git
cd MLPredictionService

2️⃣ Настройка DVC

Перед запуском необходимо настроить DVC и скачать модели.

🔹 Инициализация и настройка DVC

Проинициализировать, аналогично config и config-example.local

🔹 Загрузить модели из хранилища

dvc pull

Модели будут загружены в models/, и сервис сможет их использовать.


🚀 Запуск проекта

1️⃣ Запуск через Docker Compose

docker-compose up --build

Это развернёт:

  • FastAPI сервер (ML API & Web)
  • RabbitMQ (очередь задач)
  • PostgreSQL (База данных)
  • Два воркера (обрабатывают ML-задачи)
  • Nginx (обратный прокси для веб-интерфейса)

🎯 Основные возможности

Регистрация / Авторизация (JWT-токены)
Пополнение баланса
Выбор ML-модели для предсказаний
Загрузка изображений для предсказаний
Асинхронная обработка предсказаний через RabbitMQ
История транзакций и предсказаний
Доступ через API или веб-интерфейс


🔗 Доступ через API

Сервис поддерживает REST API, доступный для тестирования через Postman или curl.

📌 1. Регистрация пользователя

POST /user/signup

Пример запроса:

{
    "username": "test_user",
    "password": "securepassword"
}

Ответ:

{
    "message": "Регистрация успешна",
    "user_id": 1
}

📌 2. Получение JWT-токена

POST /user/token

Пример запроса:

{
    "username": "test_user",
    "password": "securepassword"
}

Ответ:

{
    "access_token": "your-jwt-token",
    "token_type": "bearer"
}

Этот токен нужно добавлять в заголовок всех последующих запросов:

Authorization: Bearer your-jwt-token

📌 3. Пополнение баланса

POST /user/balance/deposit/{amount}

Пример:

POST /user/balance/deposit/100

Ответ:

{
    "message": "Баланс успешно пополнен",
    "transaction_id": 5,
    "new_balance": 100.0
}

📌 4. Выбор ML-модели

POST /user/select_model

Пример:

{
    "model": "efficientnet_b0"
}

Ответ:

{
    "message": "Вы выбрали модель efficientnet_b0"
}

📌 5. Отправка изображения на предсказание

POST /prediction/

Пример cURL:

curl -X 'POST' 'http://localhost:8080/prediction/' \
-H 'Authorization: Bearer your-jwt-token' \
-F 'file=@your-image.jpg'

Ответ:

{
    "message": "Задача отправлена в очередь",
    "prediction_id": 12
}

📌 6. Получение результата предсказания

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages