ПочатиПочніть безкоштовно

Система рекомендацій товарів

У цій вправі ви створите систему рекомендацій для онлайн-магазину, що продає різні товари. Система пропонуватиме три схожі товари користувачам, які відкрили сторінку товару, але не придбали його, — на основі останнього переглянутого товару.

Вам надано список словників із товарами, доступними на сайті,

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'])
Редагувати та запускати код