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 personnes qui consultent une page produit sans acheter, en se basant sur le dernier produit qu'elles ont visité.
On vous fournit une liste de dictionnaires représentant les produits offerts 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 visité par l'utilisateur, stocké dans last_product.
Les fonctions personnalisées suivantes, définies plus tôt dans le cours, sont aussi à votre disposition :
create_embeddings(texts)→ renvoie une liste d'embeddings pour chaque texte danstexts.create_product_text(product)→ combine les caractéristiques duproducten une seule chaîne de caractères à intégrer.find_n_closest(query_vector, embeddings, n=3)→ renvoie lesndistances les plus faibles et leurs indices entre lequery_vectoret lesembeddings, selon la distance cosinus.
Cette activité fait partie du cours
Introduction aux embeddings avec l'API d'OpenAI
Instructions de l’exercice
- Combinez les caractéristiques textuelles dans
last_product, et pour chaque produit deproducts, en utilisantcreate_product_text(). - Générez les embeddings de
last_product_textetproduct_textsaveccreate_embeddings(), en veillant à ce quelast_product_embeddingssoit une seule liste. - Trouvez les trois distances cosinus les plus petites et leurs indices avec
find_n_closest().
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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'])