ComeçarComece gratuitamente

Pesquisa semântica de produtos

É hora de você usar a função find_n_closest()! Você testará sua pesquisa semântica de produtos em uma consulta de teste, calculando uma lista ordenada dos cinco produtos mais semelhantes semanticamente, com base nos dados enriquecidos que você forneceu ao modelo.

Aqui está um lembrete da função find_n_closest() que você criou no exercício 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]

A função create_embeddings() que você criou anteriormente também está disponível. Lembre-se de que ele recebe um texto e retorna uma lista de listas que contém os embeddings para cada texto. O dicionário products e o product_embeddings que você criou anteriormente também foram carregados.

Este exercício faz parte do curso

Introdução aos embeddings com o OpenAI API

Ver Curso

Instruções de exercício

  • Crie o vetor de consulta a partir de query_text.
  • Encontre as cinco distâncias mais próximas e seus índices correspondentes usando a função find_n_closest().
  • Faça um loop em hits e extraia o produto em cada 'index' na lista hits.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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 e executar código