ComenzarEmpieza gratis

Búsqueda semántica de productos

¡Es hora de poner en práctica tu función find_n_closest()! Probarás tu búsqueda semántica de productos en una consulta de prueba, calculando una lista ordenada de los cinco productos más similares semánticamente, basándote en los datos enriquecidos que le diste al modelo.

Aquí tienes un recordatorio de la función find_n_closest() que creaste en el ejercicio anterior:

def find_n_closest(query_vector, embeddings, n=3):

    distances = []

    for index, embedding in enumerate(embeddings):

        distance = spatial.distance.cosine(query_vector, embedding)

        distances.append({"distance": distance, "index": index})

    distances_sorted = sorted(distances, key=lambda x: x["distance"])

    return distances_sorted[0:n]

También está disponible la función create_embeddings() que creaste anteriormente. Recuerda que toma un texto y devuelve una lista de listas con las incrustaciones de cada texto. También se han cargado el diccionario products y el product_embeddings que creaste anteriormente.

Este ejercicio forma parte del curso

Introducción a las incrustaciones con la OpenAI API

Ver curso

Instrucciones de ejercicio

  • Crea el vector de consulta a partir de query_text.
  • Encuentra las cinco distancias más próximas y sus índices correspondientes utilizando la función find_n_closest().
  • Haz un bucle sobre hits y extrae el producto en cada 'index' de la lista hits.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# Create the query vector from query_text
query_text = "computer"
query_vector = ____[0]

# Find the five closest distances
hits = ____

print(f'Search results for "{query_text}"')
for hit in hits:
  # Extract the product at each index in hits
  product = products[____]
  print(product["title"])
Editar y ejecutar código