Sistema de recomendación de productos
En este ejercicio, crearás un sistema de recomendación para un minorista online que vende diversos productos. Este sistema recomienda tres productos similares a los usuarios que visitan una página de producto pero no compran, basándose en el último producto que visitaron.
Se te ha proporcionado una lista de diccionarios de productos disponibles en el sitio,
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"
]
},
...
]
y un diccionario del último producto que visitó el usuario, almacenado en last_product
.
También puedes utilizar las siguientes funciones personalizadas definidas anteriormente en el curso:
create_embeddings(texts)
→ devuelve una lista de incrustaciones para cada texto detexts
.create_product_text(product)
→ combina las características deproduct
en una sola cadena para incrustarla.find_n_closest(query_vector, embeddings, n=3)
→ devuelve lasn
distancias más cercanas y sus índices entre lasquery_vector
yembeddings
, basándose en las distancias coseno.
Este ejercicio forma parte del curso
Introducción a las incrustaciones con la OpenAI API
Instrucciones de ejercicio
- Combina las características del texto en
last_product
, y para cada producto enproducts
, utilizandocreate_product_text()
. - Incrusta las listas
last_product_text
yproduct_texts
utilizandocreate_embeddings()
, asegurándote de quelast_product_embeddings
es una lista única. - Encuentra las tres distancias coseno más pequeñas y sus índices utilizando
find_n_closest()
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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'])