Résumez cet article avec :
Voulez-vous créer une application Web capable de trouver des images similaires à une photo donnée ?
Dans ce guide adapté aux débutants, vous apprendrez à créer étape par étape une API de recherche de similarité d'images à l'aide de FastAPI et FAISS.
Nous expliquerons chaque ligne du code Python fourni, de sorte que même si vous débutez dans la programmation, vous suivrez facilement.
Vous pouvez regarder le tutoriel complet sur notre chaîne YouTube par notre défenseur des développeurs, Krishna Kompalli, pour en savoir plus :
Étape 1 : Configuration de votre environnement
Tout d'abord, installez les bibliothèques Python requises :
- fastapi: Un framework moderne pour créer rapidement des API.
- luvicorne: un serveur Web pour exécuter votre application FastAPI.
- processeur faiss: bibliothèque pour une recherche rapide de similarités.
- engourdi: bibliothèque d'opérations numériques.
- demandes: pour effectuer des requêtes HTTP.
python-dot: Chargez les variables d'environnement à partir du fichier .env.
Étape 2 : Comprendre les principaux composants
API rapide
FastAPI est un framework Web léger mais puissant qui vous permet de créer rapidement des API sécurisées et performantes avec un minimum d'effort, en fournissant une validation automatique des données et une documentation.
FAISS
FAISS (Facebook AI Similarity Search) est une bibliothèque avancée optimisée pour effectuer une recherche rapide dans de grands ensembles de données vectorielles, idéale pour trouver des éléments similaires tels que des images ou des intégrations de texte.
Étape 3 : Initialisation de l'API
Initialisez votre application FastAPI :
- FastAPI : importe le framework.
- app : crée une instance de FastAPI pour définir des itinéraires.
Étape 4 : Configuration de la base de données vectorielles (FAISS)
Cette classe gère votre base de données vectorielles FAISS pour stocker les intégrations :
- __init__ : initialise l'index FAISS et spécifie les dimensions des intégrations.
- add_embedding : ajoute des intégrations (vecteurs numériques) à l'index FAISS.
- search : Trouve et renvoie les indices et les distances des intégrations les plus similaires.
Étape 5 : Téléchargez une image et générez des intégrations
Voici comment télécharger une image et générer des intégrations à l'aide d'Eden AI :
- @app .post : définit un point de terminaison POST pour le téléchargement d'images.
- UploadFile : facilite la gestion des téléchargements de fichiers dans FastAPI, vous permettant de lire et de traiter efficacement les fichiers téléchargés
Étape 6 : Rechercher des images similaires
Implémentez la recherche de similarité pour les images téléchargées :
- Ce point de terminaison est similaire à la fonction de téléchargement mais spécialement conçu pour gérer les requêtes, générer des intégrations pour les images de requête et rechercher des correspondances dans la base de données.
Étape 7 : Explication détaillée du code
Chargement de variables d'environnement
Charge en toute sécurité les détails de configuration sensibles, tels que votre clé d'API Eden AI, à partir d'un fichier .env masqué, en les gardant hors de votre code source principal.
Faire appel à Eden AI pour générer des intégrations
- Envoie votre image au service d'Eden AI pour l'intégrer.
- Utilise votre clé API pour authentifier la demande en toute sécurité.
Extraire des intégrations de la réponse d'Eden AI
- Analyse la réponse JSON reçue d'Eden AI et récupère le vecteur d'intégration fourni par le service.
Ajouter l'intégration au FAISS
- Stocke le vecteur d'intégration extrait dans la base de données FAISS, le rendant disponible pour les recherches de similarité.
Effectuer une recherche de similarité
- Effectue une recherche de similarité dans votre base de données FAISS à l'aide de l'intégration de requêtes, identifiant rapidement les intégrations stockées les plus similaires.
Étape 8 : Déployez votre API
Exécutez votre application FastAPI :
- uvicorn : lance votre application FastAPI sur un serveur local, la rendant accessible via le port spécifié (8000).
Conclusion
Félicitations ! Vous avez créé avec succès une API de recherche de similarité d'images à l'aide de FastAPI, FAISS et Eden AI.
Vous avez appris à gérer les téléchargements d'images, à générer des intégrations et à rechercher efficacement des images similaires.
En comprenant ces concepts fondamentaux, vous pouvez désormais étendre cette API de base à des systèmes plus complexes, l'intégrer à des applications réelles et explorer des fonctionnalités supplémentaires telles que les interfaces utilisateur, la catégorisation automatisée et les fonctionnalités de recherche améliorées. Continuez à expérimenter et à pratiquer pour renforcer encore vos compétences en matière de développement !
.avif)