MAISON CODE .
/ AI · Search · Vectors · Innovation

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.

AB
Alex B.
Embeddings de vecteurs : créer un moteur de recherche visuel

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é :

  1. Téléchargez sur le stockage temporaire.
  2. Transmettez l’URL à notre route API.
  3. Effectuez la recherche de vecteur.
  4. 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.