Produktempfehlungssystem
In dieser Übung erstellst du ein Empfehlungssystem für einen Onlinehändler, der verschiedene Produkte verkauft. Dieses System empfiehlt Nutzerinnen und Nutzern, die zwar eine Produktseite besuchen, aber nichts kaufen, drei ähnliche Produkte – basierend auf dem zuletzt besuchten Produkt.
Du bekommst eine Liste von Dictionaries mit den auf der Website verfügbaren Produkten,
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 Dictionary für das zuletzt besuchte Produkt der Nutzerin/des Nutzers in last_product.
Die folgenden benutzerdefinierten Funktionen aus dem Kurs stehen dir ebenfalls zur Verfügung:
create_embeddings(texts)→ gibt eine Liste von Embeddings für jeden Text intextszurück.create_product_text(product)→ kombiniert die Merkmale vonproductzu einem einzelnen String für das Embedding.find_n_closest(query_vector, embeddings, n=3)→ liefert dienkleinsten Distanzen und ihre Indizes zwischenquery_vectorundembeddings, basierend auf Kosinusdistanzen.
Diese Übung ist Teil des Kurses
Einführung in Embeddings mit der OpenAI API
Anleitung zur Übung
- Kombiniere die Textmerkmale in
last_productund für jedes Produkt inproductsmithilfe voncreate_product_text(). - Erstelle Embeddings für
last_product_textundproduct_textsmitcreate_embeddings()und stelle sicher, dasslast_product_embeddingseine einzelne Liste ist. - Finde die drei kleinsten Kosinusdistanzen und ihre Indizes mit
find_n_closest().
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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'])