CommencerCommencer gratuitement

Système de recommandation de produits

Dans cet exercice, vous allez créer un système de recommandation pour un détaillant en ligne qui vend une variété de produits. Ce système recommande trois produits similaires aux utilisateurs qui visitent une page produit sans acheter, en se basant sur le dernier produit qu’ils ont consulté.

On vous fournit une liste de dictionnaires représentant les produits disponibles sur le site,

products = [
    {
        "title": "Smartphone X1",
        "short_description": "The latest flagship smartphone with AI-powered features and 5G connectivity.",
        "price": 799.99,
        "category": "Electronics",
        "features": [
            "6.5-inch AMOLED display",
            ...
            "Fast wireless charging"
        ]
    },
    ...
]

ainsi qu’un dictionnaire pour le dernier produit consulté par l’utilisateur, stocké dans last_product.

Les fonctions personnalisées suivantes, définies plus tôt dans le cours, sont également à votre disposition :

  • create_embeddings(texts) → renvoie une liste d’embeddings pour chaque texte de texts.
  • create_product_text(product) → combine les caractéristiques du product en une seule chaîne à intégrer.
  • find_n_closest(query_vector, embeddings, n=3) → renvoie les n distances cosines les plus proches et leurs index entre query_vector et embeddings.

Cet exercice fait partie du cours

Introduction aux embeddings avec l’API OpenAI

Afficher le cours

Instructions

  • Combinez les caractéristiques textuelles de last_product, et pour chaque produit dans products, en utilisant create_product_text().
  • Intégrez (embed) last_product_text et product_texts avec create_embeddings(), en veillant à ce que last_product_embeddings soit une liste unique.
  • Trouvez les trois plus petites distances cosines et leurs index avec find_n_closest().

Exercice interactif pratique

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

# Combine the features for last_product and each product in products
last_product_text = ____
product_texts = ____

# Embed last_product_text and product_texts
last_product_embeddings = ____
product_embeddings = ____

# Find the three smallest cosine distances and their indexes
hits = ____(____, product_embeddings)

for hit in hits:
  product = products[hit['index']]
  print(product['title'])
Modifier et exécuter le code