Produktempfehlungssystem
In dieser Übung erstellst du ein Empfehlungssystem für einen Online-Händler, der eine Vielzahl von Produkten anbietet. Dieses System empfiehlt Nutzern, die eine Produktseite besuchen, aber nicht kaufen, drei ähnliche Produkte, basierend auf dem letzten Produkt, das sie besucht haben.
Du hast eine Liste mit Wörterbüchern von Produkten erhalten, die auf der Seite verfügbar sind,
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"
]
},
...
]
und ein Wörterbuch für das letzte Produkt, das der Nutzer besucht hat, gespeichert in last_product
.
Die folgenden benutzerdefinierten Funktionen, die bereits in diesem Kurs definiert wurden, stehen dir ebenfalls zur Verfügung:
create_embeddings(texts)
→ gibt eine Liste von Einbettungen für jeden Text intexts
zurück.create_product_text(product)
→ kombiniert dieproduct
Merkmale zu einem einzigen String zum Einbetten.find_n_closest(query_vector, embeddings, n=3)
→ gibt dien
engsten Abstände und ihre Indizes zwischenquery_vector
undembeddings
zurück, basierend auf den Kosinusabständen.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Kombiniere die Textmerkmale in
last_product
, und für jedes Produkt inproducts
, mitcreate_product_text()
. - Binde
last_product_text
undproduct_texts
mitcreate_embeddings()
ein und stelle sicher, dasslast_product_embeddings
eine einzige Liste ist. - Finde die drei kleinsten Kosinusabstände und ihre Indizes mit
find_n_closest()
.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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'])