Система рекомендацій товарів
У цій вправі ви створите систему рекомендацій для онлайн-магазину, що продає різні товари. Система пропонуватиме три схожі товари користувачам, які відкрили сторінку товару, але не придбали його, — на основі останнього переглянутого товару.
Вам надано список словників із товарами, доступними на сайті,
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"
]
},
...
]
а також словник для останнього товару, який переглянув користувач, збережений у last_product.
Доступні такі користувацькі функції, визначені раніше в курсі:
create_embeddings(texts)→ повертає список вкладень (embeddings) для кожного тексту вtexts.create_product_text(product)→ об'єднує ознакиproductв один рядок для векторизації.find_n_closest(query_vector, embeddings, n=3)→ повертаєnнайменших косинусних відстаней і їхні індекси міжquery_vectorтаembeddings.
Ця вправа є частиною курсу
Вступ до Embeddings з OpenAI API
Інструкції до вправи
- Об'єднайте текстові ознаки в
last_productі для кожного товару вproducts, використовуючиcreate_product_text(). - Створіть вкладення для
last_product_textтаproduct_textsза допомогоюcreate_embeddings(), переконайтеся, щоlast_product_embeddingsє одним списком. - Знайдіть три найменші косинусні відстані та їхні індекси за допомогою
find_n_closest().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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'])