Classificação por similaridade
Agora que você incorporou todos os seus recursos, a próxima etapa é calcular as semelhanças. Neste exercício, você definirá uma função chamada find_n_closest()
, que calcula as distâncias de cosseno entre um vetor de consulta e uma lista de embeddings e retorna as n
menores distâncias e seus índices.
No próximo exercício, você usará essa função para ativar seu aplicativo de pesquisa semântica de produtos.
distance
foi importado de scipy.spatial
.
Este exercício faz parte do curso
Introdução aos embeddings com o OpenAI API
Instruções de exercício
- Calcule a distância de cosseno entre
query_vector
eembedding
. - Acrescenta um dicionário contendo
dist
e seuindex
à listadistances
. - Classifique a lista
distances
pela chave'distance'
de cada dicionário. - Retorne os primeiros
n
elementos emdistances_sorted
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
def find_n_closest(query_vector, embeddings, n=3):
distances = []
for index, embedding in enumerate(embeddings):
# Calculate the cosine distance between the query vector and embedding
dist = ____
# Append the distance and index to distances
distances.append({"distance": ____, "index": ____})
# Sort distances by the distance key
distances_sorted = ____
# Return the first n elements in distances_sorted
return ____