Doporučovací systém produktů
V tomto cvičení vytvoříš doporučovací systém pro internetový obchod s různorodým sortimentem. Systém doporučí tři podobné produkty uživatelům, kteří navštíví stránku produktu, ale nic nekoupí – doporučení vychází z posledního produktu, který si prohlédli.
Máš k dispozici seznam slovníků s produkty dostupnými na webu,
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"
]
},
...
]
a slovník s posledním produktem, který si uživatel prohlédl, uložený v last_product.
K dispozici máš také následující vlastní funkce definované dříve v kurzu:
create_embeddings(texts)→ vrátí seznam embeddingů pro každý text vtexts.create_product_text(product)→ sloučí vlastnostiproductdo jednoho řetězce připraveného k embeddingu.find_n_closest(query_vector, embeddings, n=3)→ vrátínnejbližších vzdáleností a jejich indexů meziquery_vectoraembeddingsna základě kosinové vzdálenosti.
Toto cvičení je součástí kurzu
Introduction to Embeddings with the OpenAI API
Pokyny k cvičení
- Zkombinuj textové vlastnosti z
last_producta pro každý produkt vproductspoužijcreate_product_text(). - Vytvoř embeddingy pro
last_product_textaproduct_textspomocícreate_embeddings()a zajisti, želast_product_embeddingsbude jediný seznam. - Najdi tři nejmenší kosinové vzdálenosti a jejich indexy pomocí
find_n_closest().
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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'])