НачатьНачать бесплатно

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

В этом упражнении вы создадите систему рекомендаций для интернет-магазина, предлагающего самые разные товары. Система рекомендует пользователям три похожих товара, если они просмотрели страницу товара, но не совершили покупку, — основываясь на последнем просмотренном товаре.

Вам предоставлен список словарей с товарами, доступными на сайте:

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) → возвращает список эмбеддингов (векторных представлений) для каждого текста из texts.
  • create_product_text(product) → объединяет характеристики product в одну строку для построения эмбеддинга.
  • find_n_closest(query_vector, embeddings, n=3) → возвращает n наименьших косинусных расстояний и их индексы между query_vector и 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'])
Редактировать и запускать код