Шаг 0 — создайте базовый сервер FastApi

В основном каталоге приложения мы нашли файл main.py

Папка приложения Isside Я создал 3 папки

  • api/api_v1 — все настройки API будут сохранены в версии 1.
  • core — внутри я буду хранить файл глобальной конфигурации
  • модели — сюда я буду помещать файлы и скрипты, связанные с обучением и использованием моделей

Итак, в каталоге api/api_v1 я создал файл api.py, который является основным элементом управления всеми файлами пути.

И, наконец, внутри я создал папку конечных точек, а внутри я создал два (на данный момент) файла.

  • root.py — с ответом по умолчанию {"hello": "world"}

  • predicthouseprice.py — этот файл определяет, что делать, когда кто-то запрашивает прогноз дома.

Теперь мы можем запустить наш сервер, чтобы проверить, работает ли маршрут по умолчанию.

Шаг 0.1 Создайте Docker с сервером FastAPI

На данный момент — это необязательно, но мне очень нравится использовать конфигурацию для использования каждого решения в качестве образа докера — поэтому давайте создадим простой файл Dockerfile.

Я создаю Dockerfile в основной папке.

Теперь я могу построить его.

И попробуйте.

Шаг 1 — Создайте некоторую модель

В качестве первой модели я получил Predicting House Prices Challenge от HackerRank. День 6: Множественная линейная регрессия: прогнозирование цен на жилье | ХакерРанг

Мы собираемся изменить данные для формата обучения. Он будет сохранен в виде файла json.

Программа, которая подходит на основе этих данных, представляет собой простую реализацию линейной модели sklearn.

Мы записываем состояние соответствия с помощью pickle в файл. Этот файл является нашей моделью. Этот принцип используется практически во всех реализациях ИИ.

Шаг 2 — Создайте API для запроса модели

Во-первых, класс, который нам нужен для возврата прогноза на основе ранее обученной модели, выглядит примерно так (fastapi_ml/app/models/MLR_PredictingHousePrices/predict.py)

И, наконец, мы можем создать реализацию API прогнозирования. Давайте изменим файл fastapi_ml/app/api/api_v1/endpoints/predicthouseprice.py:

Чтобы протестировать наше решение, мы используем, например. Почтальон. Отправка как POST с json в теле.

Надеюсь, вам понравилась эта небольшая статья.

Вот ссылка на эту версию репозитория https://github.com/rafeekpro/fastapi_ml/tree/476d2d820aea4d4432ea8e02430a6d4cf7d64c63