Kom igångKom igång gratis

Semantisk sökning efter produkter

Nu är det dags att använda din find_n_closest()-funktion! Du testar din semantiska produktsökning på en testfråga och beräknar en sorterad lista med de fem mest semantiskt liknande produkterna, baserat på den berikade data du gav modellen.

Här är en påminnelse om find_n_closest()-funktionen du skapade i föregående övning:

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]

Funktionen create_embeddings() som du skapade tidigare är också tillgänglig. Den tar emot text och returnerar en lista med listor som innehåller inbäddningarna för varje text. Ordboken products och product_embeddings som du skapade tidigare har också laddats in.

Den här övningen är en del av kursen

Introduktion till inbäddningar med OpenAI API

Visa kurs

Övningsinstruktioner

  • Skapa frågevektorn från query_text.
  • Hitta de fem närmaste avstånden och deras motsvarande index med hjälp av funktionen find_n_closest().
  • Loopa över hits och hämta produkten vid varje 'index' i listan hits.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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"])
Redigera och kör kod