CommencerCommencer gratuitement

Recherche sémantique de produits

Il est temps d'utiliser votre fonction find_n_closest()! Vous testerez votre recherche sémantique de produits sur une requête test, en établissant une liste triée des cinq produits les plus sémantiquement similaires, sur la base des données enrichies que vous avez fournies au modèle.

Voici un rappel de la fonction find_n_closest() que vous avez créée dans l'exercice précédent :

def find_n_closest(query_vector, embeddings, n=3):

    distances = []

    for index, embedding in enumerate(embeddings):

        distance = spatial.distance.cosine(query_vector, embedding)

        distances.append({"distance": distance, "index": index})

    distances_sorted = sorted(distances, key=lambda x: x["distance"])

    return distances_sorted[0:n]

La fonction create_embeddings() que vous avez créée précédemment est également disponible. Rappelons qu'il prend un texte et renvoie une liste de listes contenant les intégrations pour chaque texte. Le dictionnaire products et le product_embeddings que vous avez créé précédemment ont également été chargés.

Cet exercice fait partie du cours

Introduction à l'intégration avec l'API OpenAI

Afficher le cours

Instructions

  • Créez le vecteur de requête à partir de query_text.
  • Trouvez les cinq distances les plus proches et leurs indices correspondants à l'aide de la fonction find_n_closest().
  • Passez en boucle sur hits et extrayez le produit à chaque 'index' de la liste hits.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Create the query vector from query_text
query_text = "computer"
query_vector = ____[0]

# Find the five closest distances
hits = ____

print(f'Search results for "{query_text}"')
for hit in hits:
  # Extract the product at each index in hits
  product = products[____]
  print(product["title"])
Modifier et exécuter le code