Ürün öneri sistemi
Bu egzersizde, çeşitli ürünler satan bir çevrimiçi perakendeci için bir öneri sistemi oluşturacaksın. Bu sistem, bir ürün sayfasını ziyaret edip satın almayan kullanıcılara, en son ziyaret ettikleri ürüne göre üç benzer ürün önerir.
Sitede bulunan ürünlerin sözlüklerinden oluşan bir liste sana verildi,
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"
]
},
...
]
ve kullanıcının en son ziyaret ettiği ürüne ait, last_product içinde saklanan bir sözlük de sağlandı.
Ayrıca, derste daha önce tanımlanmış aşağıdaki özel fonksiyonları da kullanabilirsin:
create_embeddings(texts)→textsiçindeki her metin için bir gömme (embedding) listesi döndürür.create_product_text(product)→productözelliklerini gömme için tek bir metin halinde birleştirir.find_n_closest(query_vector, embeddings, n=3)→ kosinüs uzaklıklarına görequery_vectorileembeddingsarasındaki en yakınnuzaklığı ve bunların indekslerini döndürür.
Bu egzersiz, kursun bir parçasıdır
OpenAI API ile Embeddings’e Giriş
Egzersiz talimatları
last_productiçindeki metin özelliklerini veproductsiçindeki her ürün içincreate_product_text()kullanarak birleştir.last_product_textveproduct_textsiçincreate_embeddings()ile gömme oluştur;last_product_embeddingsdeğerinin tek bir liste olduğundan emin ol.find_n_closest()ile en küçük üç kosinüs uzaklığını ve indekslerini bul.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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'])