TL; DR: Une application Web piratée avec un backend MongoDB Atlas à l'aide de différentes requêtes de recherche.
Offrir une excellente expérience de recherche d'utilisateurs dans les applications peut être difficile, mais n'a pas besoin de l'être.
Cette application combine plusieurs techniques de recherche disponibles dans MongoDB sur un ensemble de données opérationnelles de films. MongoDB est une base de données de documents très populaire connue pour ses puissantes capacités transactionnelles et analytiques sur des données structurées et semi-structurées dans une structure de type JSON. L'ajout de recherche de pertinence et de recherche vectorielle sémantique dans la même plate-forme et le même langage de requête est très facile et simple à utiliser, sans beaucoup de complexité. En tant que base de données vectorielle, il stocke désormais également des données non structurées telles que du texte, des images ou de l'audio, dans des intégres vectoriels (vecteurs de grande dimension) pour faciliter la recherche et la récupération rapidement des objets similaires.
MongoDB ),Lucene ),text-embedding-ada-002 ),clip-ViT-B-32 ), La recherche Atlas permet des capacités de recherche et de notation de pertinence basées sur des index lunene open source. Ici, je l'utilise pour rechercher des films pertinents avec un support linguistique et une correction de la faute de frappe. 
L'intrigue de texte de chaque film est passé par l'API d'intégration d'Openai et les intégres text-embedding-ada-002 sont stockés dans MongoDB. L'invite de l'utilisateur est intégrée et utilisée pour interroger dans la base de données vectorielle pour un contenu similaire. Vous pouvez rechercher soit sur votre entrée, soit effectuer une recherche de similitude en fonction de l'intrigue d'un film existant. 
L'image de l'affiche de chaque film est interprétée par clip-ViT-B-32 . Ces incorporations d'images sont stockées dans MongoDB. L'utilisateur peut trouver des films avec des images d'affiches similaires à sa requête. 
La structure du document semble comme suit. En bleu, vous avez les champs, les objets imbriqués et les tableaux avec des données opérationnelles. Les bleus sont interrogés avec la recherche de base de données et la recherche de pertinence de recherche atlas. Ces projets ajoutent les champs en jaune: une représentation de base64 de l'affiche de film, des intégres de texte Ada Openai et des incorporations d'images à clip, interrogée avec une recherche vectorielle Atlas.

Vous avez besoin python3 et pip .
python3 --version
python3 -m ensurepip --upgrade
pip3 install -r requirements.txt
Vous avez besoin d'un cluster MongoDB Atlas . Cela peut être un cluster gratuit, créé sur cloud.mongodb.com. Assurez-vous que l'accès à la base de données et l'accès au réseau vous permettent de créer une connexion à la base de données. Remarque Les clusters gratuits ont une limitation de taille et de performance, n'hésitez pas à l'exécuter sur un petit cluster payant avec beaucoup plus de données.
Vous devez définir certaines variables d'environnement locales. Le modèle est .env.example que vous pouvez copier dans votre fichier .env local.
MDB_CONN=<YOUR MongoDB Atlas connection string>
DB="sample_mflix"
COLL="embedded_movies"
OPENAI_API_KEY=<YOUR OpenAI API key>
Clone Le repo MDB-Search-Data.
Là, vous vous proposez 2 options: restaurer de la sauvegarde ou générer les intégres vous-même localement. La restauration de la sauvegarde prend moins d'une minute.
Dans Atlas, dans l' Search tab de vue du cluster, entrez la configuration JSON suivante. Utilisez le nom d'index default et assurez-vous de le créer sur la collection embedded_movies . Il s'agit de la magie qui permettra une recherche dynamique de texte intégral sur les champs, ainsi que d'activer les index de recherche vectorielle. Aucune copie de données nécessaire: o
{
"mappings": {
"dynamic": true,
"fields": {
"plot_embedding": {
"dimensions": 1536,
"similarity": "cosine",
"type": "knnVector"
},
"poster_embedding": {
"dimensions": 512,
"similarity": "cosine",
"type": "knnVector"
}
}
}
}
Il s'agit d'une application Web Python3 Flask.
Démarrez l'application Flask comme celle-ci
flask --app app run
Ou avec un assistant utilisez simplement Python comme celui-ci
python app.py
Vous pouvez accéder à l'application Web sur http://localhost:8080 .
Vous pouvez maintenant:
Faites confiance au ML et au modèle d'incorporation. Pouvez-vous deviner pourquoi ces images sont similaires?