Comece agoraComece grátis

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 exercicio faz parte do curso

Introdução aos embeddings com o OpenAI API

Ver curso

Instruções do exercicio

  • 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.

exercicio interativo prático

Tente este exercicio completando 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