Aan de slagBegin gratis

Sorteren op overeenkomst

Nu je al je kenmerken hebt ge-embed, is de volgende stap het berekenen van de overeenkomsten. In deze oefening definieer je een functie find_n_closest(), die de cosinusafstanden berekent tussen een queryvector en een lijst met embeddings en de n kleinste afstanden en hun indexen retourneert.

In de volgende oefening gebruik je deze functie om je semantische productzoekapplicatie mogelijk te maken.

distance is geïmporteerd uit scipy.spatial.

Deze oefening maakt deel uit van de cursus

Introductie tot Embeddings met de OpenAI API

Bekijk cursus

Oefeninstructies

  • Bereken de cosinusafstand tussen de query_vector en embedding.
  • Voeg een dictionary met dist en de bijbehorende index toe aan de lijst distances.
  • Sorteer de lijst distances op de sleutel 'distance' van elke dictionary.
  • Retourneer de eerste n elementen in distances_sorted.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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 ____
Code bewerken en uitvoeren