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 mais n'achètent pas, sur la base du dernier produit qu'ils ont visité.
Vous avez reçu une liste de dictionnaires de 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"
]
},
...
]
et 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 également à votre disposition :
create_embeddings(texts)
→ renvoie une liste d'encastrements pour chaque texte danstexts
.create_product_text(product)
→ combine les caractéristiquesproduct
en une seule chaîne pour l'intégration.find_n_closest(query_vector, embeddings, n=3)
→ renvoie lesn
distances les plus proches et leurs index entre lesquery_vector
etembeddings
, sur la base des distances cosinusoïdales.
Cet exercice fait partie du cours
Introduction à l'intégration avec l'API OpenAI
Instructions
- Combinez les caractéristiques textuelles dans
last_product
, et pour chaque produit dansproducts
, en utilisantcreate_product_text()
. - Incorporez les adresses
last_product_text
etproduct_texts
à l'aide decreate_embeddings()
, en veillant à ce quelast_product_embeddings
soit une liste unique. - Trouvez les trois plus petites distances en cosinus et leurs indices en utilisant
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'])