ÎncepețiÎncepe gratuit

Sistem de recomandare a produselor

În acest exercițiu, vei construi un sistem de recomandare pentru un retailer online care vinde o varietate de produse. Sistemul recomandă trei produse similare utilizatorilor care vizitează o pagină de produs fără să cumpere, pe baza ultimului produs vizualizat.

Îți este pusă la dispoziție o listă de dicționare cu produsele disponibile pe site,

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"
        ]
    },
    ...
]

și un dicționar pentru ultimul produs vizitat de utilizator, stocat în last_product.

Următoarele funcții personalizate, definite anterior în curs, sunt disponibile și pentru tine:

  • create_embeddings(texts) → returnează o listă de încorporări (embeddings) pentru fiecare text din texts.
  • create_product_text(product) → combină caracteristicile din product într-un singur șir de caractere, pregătit pentru încorporare.
  • find_n_closest(query_vector, embeddings, n=3) → returnează cele n distanțe cele mai mici și indexurile lor dintre query_vector și embeddings, pe baza distanțelor cosinus.

Acest exercițiu face parte din cursul

Introducere în Embeddings cu API-ul OpenAI

Vezi cursul

Instrucțiuni pentru exercițiu

  • Combină caracteristicile textuale din last_product și din fiecare produs din products, folosind create_product_text().
  • Încorporează last_product_text și product_texts cu ajutorul funcției create_embeddings(), asigurându-te că last_product_embeddings este o singură listă.
  • Găsește cele mai mici trei distanțe cosinus și indexurile lor folosind find_n_closest().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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'])
Editează și rulează codul