Introduction
Lors de la développement d’applications en Python, FastAPI se distingue en tant que choix supérieur pour la construction de solutions à hautes performances. Il offre une vitesse élevée, une simplicité et un support pour la programmation asynchrone, ce qui le rend idéal pour développer des applications modernes, scalables.
Dans ce tutoriel, nous vous guiderons à travers le processus de configuration d’une application FastAPI avec une base de données NoSQL. En ce qui concerne le stockage et la gestion des données, les bases de données NoSQL offrent une flexibilité et une scalabilité exceptionnelles, ce qui les rend parfaitement adaptés pour les applications qui doivent gérer des structures de données diverses et complexes.
Prérequis
Avant de commencer, vous devez s’assurer que vous avez les éléments suivants :
- Un serveur fonctionnant sous Ubuntu ainsi qu’un utilisateur non-root avec des privilèges sudo et un pare-feu actif. Pour des instructions sur la mise en place, veuillez sélectionner votre distribution de la liste ci-dessous et suivez notre guide de configuration initiale du serveur. Veuillez vous assurer de travailler avec une version prise en charge d’Ubuntu.
-
Familiarité avec la ligne de commande Linux. Pour une introduction ou un rappel sur la ligne de commande, vous pouvez visiter ce guide sur primer sur la ligne de commande Linux.
-
Exécutez
sudo apt-get update
dans le terminal Ubuntu pour vous assurer que votre système dispose des dernières versions et mises à jour de sécurité des logiciels disponibles à partir des dépôts configurés sur votre système.
Ces instructions sont valables pour les dernières versions d’Ubuntu : Ubuntu 24.04, Ubuntu 22.04 et Ubuntu 20.04. Si vous utilisez une version d’Ubuntu <= 18.04, nous vous recommandons de passer à une version plus récente car Ubuntu n’offre plus de support pour ces versions. Cette collection de guides vous aidera à mettre à niveau votre version d’Ubuntu.
Étape 1 – Configurer l’environnement Python sur votre machine
Pendant ce tutoriel, nous utiliserons le paquet python3
pour exécuter des commandes. Les dernières versions d’Ubuntu sont fournies avec l’installation de Python 3, donc pour vérifier son installation, exécutez la commande suivante :
Si cette commande retourne une erreur, vous pouvez installer/reinstaller le paquet en exécutant :
Ensuite, vous devez installer pip
pour installer des paquets Python et leurs dépendances de manière sécurisée.
Étape 2 – Créer un environnement virtuel
Si vous utilisez une version d’Ubuntu < 24.04, vous n’avez pas besoin de créer un environnement virtuel, mais il s’agit d’une bonne pratique pour isoler les dépendances de votre projet.
Débutant avec Python 3.11 et pip 22.3, il existe une nouvelle PEP 668 qui stipule la marque des environnements de base Python comme « gérés externes », ce qui signifie que vous ne serez pas en mesure d’utiliser pip
pour installer des paquets avec succès à moins que vous travailliez à l’intérieur d’un environnement virtuel.
Dans cette étape, vous allez créer un environnement virtuel pour votre projet, qui isolera les dépendances de votre projet pour éviter les conflits potentiels entre les différentes versions des paquets. Exécutez la suite des commandes suivantes dans le terminal :
Cela installera le package requis venv
nécessaire pour créer un environnement virtuel.
Cette commande créera un environnement virtuel fastapi-env
à l’intérieur de votre dossier de travail. Pour commencer à travailler à l’intérieur de cet environnement, vous devez le激活.
A la suite d’une exécution réussie, vous verrez le prompt du terminal précédé par ceci :
(fastapi-env) user@machine:~$
Maintenant, vous pouvez commencer à installer les dépendances requises à l’intérieur de cet environnement virtuel.
Étape 3 – Installer les bibliothèques et paquets requis
Dans cette étape, vous installerez quelques paquets et bibliothèques qui sont requis pour suivre ce tutoriel avec succès.
Commencez par installer fastapi
, ce qui est requis pour construire votre application FastAPI, et uvicorn
, qui est requis pour exécuter l’application FastAPI.
Dans ce tutoriel, nous utiliserons MongoDB comme base de données NoSQL. Pour interagir avec MongoDB à l’intérieur de votre FastAPI, vous devez installer motor
, qui est un pilote asynchrone Python pour MongoDB.
Étape 4 – Installer et Configurer MongoDB sous Ubuntu
Pour installer MongoDB sur votre machine Ubuntu, exécutez la suite des commandes suivantes dans le terminal :
A l’exécution réussie, cela renvoie le paramètre echo. Maintenant, effectuez une vérification rapide :
Cela vous assurerait que vous obtenez les dernières mises à jour après avoir configuré les clés de MongoDB.
Next up, you need to install an openssl
dependency on your system that is required for MongoDB installation.
À l’exécution, vous serez invité à redémarrer les services. Après le redémarrage, installez MongoDB en utilisant la commande suivante :
Démarrez et activez les services MongoDB :
Vous pouvez vérifier l’état du service MongoDB et tester la connexion en exécutant les commandes suivantes :
Étape 5 – Créer une application FastAPI
La prochaine étape consiste à créer une application FastAPI. Dans votre répertoire de travail, créez un fichier database.py
:
Cela ouvre un éditeur de texte vide. Écrivez votre logique de connexion à la base de données ici.
En supposant que la collection mycollection
du dépôt mydatabase
soit peuplée de certaines données, vous créez maintenant un main.py
qui contient la logique de votre application. Dans l’application FastAPI suivante, une connexion à la base de données est établie en utilisant database.py
; des routes pour la prédiction par IA sont définies. En utilisant ces routes, l’entrée est validée.
Dans l’éditeur de texte, écrivez la logique :
Voici un aperçu de ce que fait cette application :
- Modèle de régression linéaire de sklearn : Ce modèle prédit une sortie en fonction d’une seule caractéristique d’entrée.
- Données d’entrée à partir de Modèle Pydantic : Cela définit la structure d’entrée attendue pour le point de terminaison de prediction. Dans ce cas, c’est une
float
. - Routes MongoDB : Les routes
/items/
etPOST /items/
vous permettent de récupérer et d’insérer des éléments dans votre collection MongoDB.
Étape 6 – Exécuter l’application FastAPI
Pour exécuter correctement cette application, vous devez installer les bibliothèques et les paquets utilisés dans l’application.
Maintenant, utilisez la commande suivante pour exécuter cette application :
La sortie de cette commande sera :
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 a automatiquement généré une documentation interactive de l’API à l’aide de Swagger UI. Vous pouvez y accéder en navigateur vers http://127.0.0.1:8000/docs
.
Vous pouvez utiliser des outils tels que curl
ou Postman pour appeler le point de terminaison qui prédit une valeur en fonction de votre entrée.
curl -X POST "http://127.0.0.1:8000/predict/" -H "Content-type: application/json" -d '{"feature": 3}'
Étape 7 [OPTIONNEL] – Exécuter l’application en utilisant Docker Compose
Vous pouvez conteneuriser votre application et l’exécuter en utilisant docker-compose
. Conteneuriser votre application simplifie le processus de déploiement en rendant votre application plus facile à déployer, à scaler et à maintenir. Pour définir votre application en tant que fichier Dockerfile, suivez les étapes mentionnées dans Déployer une application FastAPI en utilisant Docker Compose.
Conclusion
Dans ce tutoriel, vous avez appris comment réussirment configurer une application FastAPI avec MongoDB, créant une application simple basée sur l’IA capable de stocker et de récupérer des prédictions d’entrée.
La combinaison de FastAPI et d’une base de données NoSQL offre un environnement puissant et flexible pour construire et élargir des applications pilotées par l’IA.
Source:
https://www.digitalocean.com/community/tutorials/set-up-fastapi-app-with-nosql-db