Kom igångKom igång gratis

Produktrekommendationssystem

I den här övningen ska du bygga ett rekommendationssystem för en webbutik som säljer ett brett sortiment av produkter. Systemet rekommenderar tre liknande produkter till användare som besöker en produktsida utan att köpa – baserat på den senaste produkten de tittade på.

Du har fått tillgång till en lista med ordlistor över de produkter som finns i butiken,

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"
        ]
    },
    ...
]

och en ordlista för den senaste produkten användaren besökte, lagrad i last_product.

Följande anpassade funktioner, som definierats tidigare i kursen, finns också tillgängliga:

  • create_embeddings(texts) → returnerar en lista med inbäddningar för varje text i texts.
  • create_product_text(product) → kombinerar egenskaperna i product till en enda sträng för inbäddning.
  • find_n_closest(query_vector, embeddings, n=3) → returnerar de n närmaste avstånden och deras index mellan query_vector och embeddings, baserat på cosinus-avstånd.

Den här övningen är en del av kursen

Introduktion till inbäddningar med OpenAI API

Visa kurs

Övningsinstruktioner

  • Kombinera textegenskaperna i last_product, och för varje produkt i products, med hjälp av create_product_text().
  • Skapa inbäddningar för last_product_text och product_texts med create_embeddings(), och se till att last_product_embeddings är en enda lista.
  • Hitta de tre minsta cosinus-avstånden och deras index med hjälp av find_n_closest().

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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'])
Redigera och kör kod