Embeddings de vecteurs : créer un moteur de recherche visuel
Comment implémenter la fonctionnalité « Recherche par image » à l'aide d'OpenAI CLIP et d'une base de données vectorielle (Pinecone) sur Shopify.
La recherche de texte est erronée. Si je tape « Robe d’été rouge fluide », je devine les mots-clés utilisés par le marchandiseur. La recherche visuelle permet à un utilisateur de télécharger une photo (depuis Instagram ou Pinterest) et de dire : “Trouvez-moi quelque chose comme ceci.”
La technologie : les vecteurs
Les ordinateurs ne voient pas les images. Ils voient des chiffres. Nous utilisons un modèle d’intégration multimodal (comme OpenAI CLIP) pour convertir les images en liste de nombres (vecteurs). Remarquablement, des images similaires ont des vecteurs mathématiquement similaires.
graph TD
UserImage[L'utilisateur télécharge l'image] -->|Appel API| Intégrateur[OpenAI CLIP]
Intégration -->|Retours| VecteurA[Vecteur : [0.1, 0.9, 0.3...]]
Catalogue[Catalogue Shopify] -->|Pré-traitement| Pomme de pin [DB de vecteur de pomme de pin]
VectorA -->|Requête du voisin le plus proche| Pomme de pin
Pomme de pin -->|Retourne le Top 5| Correspondances[SKU correspondants]
Correspondances -->|Rendu| Grille[Grille produit]
Guide de mise en œuvre
Étape 1 : Indexation du catalogue
Nous exécutons un script pour traiter toutes les images de produits.
importer { intégrer } depuis 'openai' ;
importer { pomme de pin } depuis './db' ;
fonction asynchrone indexProduct (produit) {
const embedding = wait embed(product.image.url);
attendre pomme de pin.upsert({
identifiant : produit.id,
vecteur : intégration,
métadonnées : { handle : product.handle }
});
}
Étape 2 : Le composant de l’interface utilisateur
Nous ajoutons une icône “Caméra” à la barre de recherche. Lorsqu’un fichier est sélectionné :
- Téléchargez sur le stockage temporaire.
- Transmettez l’URL à notre route API.
- Effectuez la recherche de vecteur.
- Redirigez vers
/search?visual_id=xyz.
Cas d’utilisation : découverte de réplicas
Un utilisateur voit un sac à main de créateur de 5 000 $. Ils ne peuvent pas se le permettre. Ils téléchargent la photo dans votre magasin (qui vend des accessoires à prix abordables). Votre moteur trouve la correspondance la plus proche dans votre catalogue ($200). Conversion instantanée.
Performances
La recherche de vecteurs est incroyablement rapide (O(log n)). Nous pouvons rechercher 100 000 SKU en < 50 ms. C’est magique pour l’utilisateur.
Prêt à innover ?
La recherche de texte standard est ennuyeuse. La recherche visuelle est engageante. Engagez nos Architectes.