Введение
При разработке приложений на Python, FastAPI является одним из лучших выборов для создания высококачественных решений. Он предлагает быстрые скорости, простоту и поддержку асинхронного программирования, что делает его идеальным для разработки современных, масштабируемых приложений.
В этом учебнике мы вас проведем по процессу установки приложения FastAPI с NoSQL-базой данных. Что касается хранения и управления данными, NoSQL-базы данных предлагают гибкость и масштабируемость, что делает их отличным fit для приложений, которые требуют обрабатывать различные и сложные структуры данных.
Предупреждения
Перед началом работы необходимо убедиться, что у вас есть следующее:
- Сервер с установленной системой Ubuntu, неRoot-пользователь с правами sudo и активной firewall. Подробности установки смотрите в нашем руководстве по настройке начального сервера. Убедитесь, что работаете с поддерживаемой версией Ubuntu.
-
Знакомство с командной строкой Linux. Для введения или обновления знаний о командной строке вы можете просмотреть это руководство Linux command line primer.
-
Запустите
sudo apt-get update
в терминале Ubuntu, чтобы убедиться, что ваша система имеет последние версии и обновления безопасности для программного обеспечения, доступного из репозиториев, настроенных в вашей системе.
Эти инструкции актуальны для последних версий Ubuntu: Ubuntu 24.04, Ubuntu 22.04 и Ubuntu 20.04. Если вы используете версию Ubuntu <= 18.04, мы рекомендуем вам обновиться до более свежей версии, так как Ubuntu больше не обеспечивает поддержку для этих версий. Эта коллекция руководств поможет вам в обновлении вашей версии Ubuntu.
Шаг 1 – Настройте среду Python на вашей машине
Во время этого руководства мы будем использовать пакет python3
для выполнения команд. Последние версии Ubuntu идут с установленным Python 3, чтобы проверить его установку, выполните следующую команду:
Если это приводит к ошибке, вы можете установить/переустановить пакет, выполнив:
Далее вам нужно установить pip
, чтобы устанавливать пакеты Python и их зависимости безопасным способом.
Шаг 2 – Создайте виртуальную среду
Если вы используете версию Ubuntu < 24.04, вам не требуется создавать виртуальную среду, но это хорошая практика изолировать зависимости вашего проекта.
С Python 3.11 и pip 22.3 вводится новый PEP 668, который определяет маркировку базовых средств Python как “внешне управляемые”, что意味着 вы не сможете успешно установить пакеты с помощью pip
, unless you are working inside a virtual environment.
В этом шаге вы создадите виртуальную среду для вашего проекта, которая изолирует зависимости вашего проекта, чтобы предотвратить возможные конфликты между различными версиями пакетов. Execute the following set of commands in the terminal:
This will install the required venv
package needed to create a virtual environment.
This command will create a virtual environment fastapi-env
inside your working directory. To start working inside this environment, you need to activate it.
Upon successful execution, you will see the terminal prompt prefixed like this:
(fastapi-env) user@machine:~$
Now, you can begin installing the required dependencies inside this virtual environment.
Step 3 – Install Required Libraries and Packages
In this step, you will be installing a few packages and libraries that are required to successfully follow this tutorial.
Давайте начнем с установки fastapi
, который обязателен для создания вашего FastAPI-приложения, и uvicorn
, который требуется для запуска FastAPI-приложения.
В этом учебнике мы будем использовать MongoDB в качестве NoSQL-базы данных. Чтобы взаимодействовать с MongoDB в вашем FastAPI, вам нужно установить motor
, который является асинхронным Python-драйвером для MongoDB.
Шаг 4 – Установка и настройка MongoDB на Ubuntu
Для установки MongoDB на вашей машине Ubuntu выполните следующий набор команд в терминале:
После успешного выполнения, это возвращает параметр echo. Теперь сделайте быстро:
Это поможет вам получить最新 Updates после настройки MongoDB-ключей.
Далее вам нужно установить зависимость openssl
на вашем системе, которая обязательна для установки MongoDB.
После выполнения вам потребуется перезапустить службы. После перезапуска установите MongoDB следующей командой:
Запустите и включите службы MongoDB:
Вы можете проверить статус службы MongoDB и протестировать соединение, выполняя следующие команды:
Шаг 5 – Создание приложения FastAPI
Следующим шагом является создание приложения FastAPI. В вашей рабочей директории создайте файл database.py
:
Это открывает пустой текстовый редактор. Здесь напишите логику подключения к базе данных.
Предполагая, что mycollection
в mydatabase
заполнена некоторыми данными, теперь создайте main.py
, который содержит логику вашего приложения. В следующем приложении FastAPI устанавливается соединение с базой данных с помощью database.py
, определяются маршруты для предсказаний AI. С помощью этих маршрутов ввод проверяется.
В текстовом редакторе напишите логику:
Вот разбор того, что делает это приложение:
- Модель линейной регрессии из sklearn: эта модель предсказывает вывод на основе одного входного признака.
- Вводные данные из Pydantic Model: Это определяет ожидаемую структуру ввода для конечной точки предсказания. В этом случае, это
float
. - Маршруты MongoDB: Маршруты
/items/
иPOST /items/
позволяют вам извлекать и вставлять элементы в вашу коллекцию MongoDB.
Шаг 6 – Запустите приложение FastAPI
Чтобы успешно запустить это приложение, вам нужно установить библиотеки и пакеты, используемые в приложении.
Теперь используйте следующую команду для запуска этого приложения:
Вывод этой команды будет:
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXXX] using statreload
INFO: Started server process [XXXXX]
INFO: Waiting for application startup.
INFO: Application startup complete.
FastAPI автоматически сгенерировала интерактивную документацию API с использованием Swagger UI. Вы можете получить к ней доступ, перейдя по адресу http://127.0.0.1:8000/docs
.
Вы можете использовать такие инструменты, как curl
или Postman, чтобы вызвать конечную точку, предсказывающую значение на основе вашего ввода.
curl -X POST "http://127.0.0.1:8000/predict/" -H "Content-type: application/json" -d '{"feature": 3}'
Шаг 7 [ОПЦИОНАЛЬНО] – Запустите приложение с использованием Docker Compose
,
В этом руководстве вы научились успешно настроить FastAPI-приложение с MongoDB, создав простое AI-ориентированное приложение, способное сохранять и извлекать входные прогнозы.
Заключение
Сочетание FastAPI и NoSQL-базы данных предлагает мощную и гибкую среду для создания и масштабирования AI-ориентированных приложений.
Разверните FastAPI-приложение с использованием Docker Compose
Вы можете контейнеризовать свое приложение и запустить его с помощью docker-compose
. Контейнеризация вашего приложения упрощает процесс развертывания, делая ваше приложение проще для развертывания, масштабирования и обслуживания. Чтобы определить ваше приложение как Dockerfile, следуйте указанным в шагам .
Source:
https://www.digitalocean.com/community/tutorials/set-up-fastapi-app-with-nosql-db