Tri par similarité
Maintenant que vous avez intégré toutes vos caractéristiques, l'étape suivante consiste à calculer les similitudes. Dans cet exercice, vous définirez une fonction appelée find_n_closest()
, qui calcule les distances en cosinus entre un vecteur de requête et une liste d'intégrations et renvoie les plus petites distances n
et leurs index.
Dans l'exercice suivant, vous utiliserez cette fonction pour activer votre application de recherche sémantique de produits.
distance
a été importé de scipy.spatial
.
Cet exercice fait partie du cours
Introduction à l'intégration avec l'API OpenAI
Instructions
- Calculez la distance en cosinus entre
query_vector
etembedding
. - Ajoutez un dictionnaire contenant
dist
et sonindex
à la listedistances
. - Triez la liste
distances
en fonction de la clé'distance'
de chaque dictionnaire. - Retournez les premiers éléments de
n
dansdistances_sorted
.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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 ____