Sistem rekomendasi produk
Dalam latihan ini, Anda akan membuat sistem rekomendasi untuk sebuah peritel online yang menjual berbagai produk. Sistem ini merekomendasikan tiga produk serupa kepada pengguna yang mengunjungi halaman produk tetapi tidak melakukan pembelian, berdasarkan produk terakhir yang mereka kunjungi.
Anda telah disediakan daftar kamus produk yang tersedia di situs,
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"
]
},
...
]
serta sebuah kamus untuk produk terakhir yang dikunjungi pengguna, disimpan dalam last_product.
Fungsi kustom berikut yang didefinisikan sebelumnya dalam kursus juga tersedia untuk Anda gunakan:
create_embeddings(texts)→ mengembalikan daftar embedding untuk setiap teks dalamtexts.create_product_text(product)→ menggabungkan fitur-fiturproductmenjadi satu string untuk di-embedding.find_n_closest(query_vector, embeddings, n=3)→ mengembalikannjarak terkecil beserta indeksnya antaraquery_vectordanembeddings, berdasarkan jarak kosinus.
Latihan ini merupakan bagian dari kursus
Pengantar Embeddings dengan OpenAI API
Instruksi latihan
- Gabungkan fitur teks dalam
last_product, dan untuk setiap produk dalamproducts, menggunakancreate_product_text(). - Buat embedding untuk
last_product_textdanproduct_textsmenggunakancreate_embeddings(), pastikanlast_product_embeddingsberupa satu daftar. - Temukan tiga jarak kosinus terkecil beserta indeksnya menggunakan
find_n_closest().
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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'])