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 dintexts.create_product_text(product)→ combină caracteristicile dinproductîntr-un singur șir de caractere, pregătit pentru încorporare.find_n_closest(query_vector, embeddings, n=3)→ returnează celendistanțe cele mai mici și indexurile lor dintrequery_vectorșiembeddings, pe baza distanțelor cosinus.
Acest exercițiu face parte din cursul
Introducere în Embeddings cu API-ul OpenAI
Instrucțiuni pentru exercițiu
- Combină caracteristicile textuale din
last_productși din fiecare produs dinproducts, folosindcreate_product_text(). - Încorporează
last_product_textșiproduct_textscu ajutorul funcțieicreate_embeddings(), asigurându-te călast_product_embeddingseste 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'])