Sistema de recomendação de produtos
Neste exercício, você criará um sistema de recomendação para um varejista on-line que vende uma variedade de produtos. Esse sistema recomenda três produtos semelhantes aos usuários que visitam uma página de produto, mas não compram, com base no último produto que visitaram.
Você recebeu uma lista de dicionários de produtos disponíveis no 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"
]
},
...
]
e um dicionário para o último produto que o usuário visitou, armazenado em last_product
.
As seguintes funções personalizadas definidas anteriormente no curso também estão disponíveis para você usar:
create_embeddings(texts)
→ retorna uma lista de embeddings para cada texto emtexts
.create_product_text(product)
→ combina os recursos deproduct
em uma única string para incorporação.find_n_closest(query_vector, embeddings, n=3)
→ retorna as distâncias mais próximas den
e seus índices entrequery_vector
eembeddings
, com base nas distâncias de cosseno.
Este exercício faz parte do curso
Introdução aos embeddings com o OpenAI API
Instruções de exercício
- Combine os recursos de texto em
last_product
, e para cada produto emproducts
, usandocreate_product_text()
. - Incorpore
last_product_text
eproduct_texts
usandocreate_embeddings()
, garantindo quelast_product_embeddings
seja uma única lista. - Encontre as três menores distâncias de cosseno e seus índices usando
find_n_closest()
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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'])