Использование Flask, Flask Restful, Web, jQuery Ajax

Вы проделали огромную работу, подготовив передовую модель машинного обучения к выпуску. Вы вложили время, усилия и много умственных способностей в обучение и тестирование модели машинного обучения, которой вы так гордитесь. Вы создали качественную модель с замечательной точностью. Теперь, когда ваша модель, наконец, готова покинуть лабораторию, вы захотите сделать ее доступной в удобной для использования форме. Каковы ваши варианты?

Один из способов добиться этого — создать REST API. Создав REST API для модели, вы можете использовать ее на разных платформах, таких как веб-сайты или мобильные устройства. Мы развернем простую модель линейной регрессии как REST API, используя Flask RESTful.

Полный код доступен на GitHub. Сопроводительный видеоурок доступен на YouTube.

Модель

Рекомендуем посмотреть учебник по простой линейной регрессии. Это краткое введение в модель линейной регрессии. Модель доступна в репозитории GitHub в виде файла pickle. Мы скопируем его в базовый каталог проекта, чтобы мы могли ссылаться на него в API. Теперь, когда у нас есть файл модели, давайте развернем его как REST API.

Проект

Давайте создадим новый проект в Pycharm или в вашей любимой IDE. Pycharm автоматически настраивает для нас виртуальную среду. Мы можем установить необходимые библиотеки с помощью pip, введя следующие команды:

  • пип установить колбу
  • pip установить flask-restful
  • пип установить панды
  • pip install -U колба-корс

Чтобы получить предсказания модели, давайте определим класс предсказания. Это требует ресурсов — ресурсы являются основными строительными блоками для Flask RESTful API. Каждый класс может иметь методы, соответствующие HTTP-методам, такие как: GET, POST. GET будет основным методом, потому что наша цель — обслуживать прогнозы модели. Мы получаем входящее значение бюджета из Интернета. Давайте напечатаем сумму бюджета для целей тестирования и преобразуем ее в целочисленный тип. Теперь мы загружаем модель с помощью библиотеки pickle. Убедитесь, что файл модели находится в том же каталоге, что и ваш скрипт Python. Мы будем использовать функцию прогнозирования, чтобы сделать прогноз продаж и вернуть его.

Давайте сопоставим этот класс прогнозирования с конечной точкой с помощью функции добавления ресурса из API.

api.add_resource(прогноз, ‘/prediction/‹int:budget›’)

Это будет служить прогнозам модели для входящих запросов GET. По умолчанию Flask работает на порту 5000. Поэтому, как только мы запустим этот API, мы сможем получить к нему доступ по следующему URL-адресу:

http://127.0.0.1:5000/prediction/?

Веб-интеграция

Мы интегрируем REST API в ванильный HTML-сайт. В веб-приложении у нас есть ввод для значения бюджета, и при нажатии кнопки мы вызываем конечную точку API. Мы интегрируем API в это веб-приложение с помощью jQuery Ajax. Мы делаем вызов конечной точке API и добавляем к ней сумму бюджета. Если вызов выполнен успешно, мы получаем доступ к возвращаемому значению и устанавливаем его в HTML-тег с sectionPredictionid.

Вот как мы можем интегрировать модели ML в наше веб-приложение. После развертывания этого API его можно использовать в веб-, настольных или мобильных приложениях. С помощью одного API-запроса к этому API теперь любой член вашей команды может интегрировать модель прогнозирования продаж в свое приложение без необходимости писать код на Python или создавать модели.

Заключение

Это был простой пример развертывания REST API Flask для модели простой линейной регрессии. Вы можете использовать этот процесс для других моделей машинного обучения, когда они будут готовы к развертыванию.

Помимо развертывания модели в виде REST API, мы интегрировали ее в веб-приложение с помощью jQuery Ajax.

Полный код можно найти здесь.