Inizia subitoInizia gratis

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 in texts.
  • create_product_text(product) → combina le caratteristiche del product in un'unica stringa da incorporare.
  • find_n_closest(query_vector, embeddings, n=3) → restituisce le n distanze più vicine e i relativi indici tra query_vector ed embeddings, basandosi sulle distanze coseno.

Questo esercizio fa parte del corso

Introduzione agli Embeddings con l'API di OpenAI

Visualizza corso

Istruzioni dell'esercizio

  • Combina le caratteristiche testuali in last_product e, per ogni prodotto in products, usando create_product_text().
  • Crea gli embedding di last_product_text e product_texts usando create_embeddings(), assicurandoti che last_product_embeddings sia 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'])
Modifica ed esegui il codice