Sistema di raccomandazione prodotti
In questo esercizio creerai un sistema di raccomandazione per un rivenditore online che vende una varietà di prodotti. Il sistema suggerisce tre prodotti simili agli utenti che visitano la pagina di un prodotto ma non acquistano, basandosi sull'ultimo prodotto che hanno visualizzato.
Ti viene fornito un elenco di dizionari dei prodotti disponibili sul sito,
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"
]
},
...
]
e un dizionario per l'ultimo prodotto visitato dall'utente, salvato in last_product.
Sono inoltre disponibili le seguenti funzioni personalizzate definite in precedenza nel corso:
create_embeddings(texts)→ restituisce un elenco di embedding per ciascun testo intexts.create_product_text(product)→ combina le caratteristiche delproductin un'unica stringa da incorporare.find_n_closest(query_vector, embeddings, n=3)→ restituisce lendistanze più vicine e i relativi indici traquery_vectoredembeddings, basandosi sulle distanze coseno.
Questo esercizio fa parte del corso
Introduzione agli Embeddings con l'API di OpenAI
Istruzioni dell'esercizio
- Combina le caratteristiche testuali in
last_producte, per ogni prodotto inproducts, usandocreate_product_text(). - Crea gli embedding di
last_product_texteproduct_textsusandocreate_embeddings(), assicurandoti chelast_product_embeddingssia una singola lista. - Trova le tre distanze coseno più piccole e i relativi indici usando
find_n_closest().
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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'])