LoslegenKostenlos loslegen

Semantische Suche für Produkte

Zeit, deine Funktion find_n_closest() einzusetzen! Du testest deine semantische Produktsuche mit einer Testanfrage und berechnest eine sortierte Liste der fünf semantisch ähnlichsten Produkte – basierend auf den angereicherten Daten, die du dem Modell gegeben hast.

Hier ist zur Erinnerung die Funktion find_n_closest(), die du in der vorherigen Übung erstellt hast:

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]

Die zuvor erstellte Funktion create_embeddings() ist ebenfalls verfügbar. Denk daran: Sie nimmt einen Text entgegen und gibt eine Liste von Listen mit den Embeddings für jeden Text zurück. Das Dictionary products und die zuvor erzeugten product_embeddings wurden ebenfalls geladen.

Diese Übung ist Teil des Kurses

Einführung in Embeddings mit der OpenAI API

Kurs anzeigen

Anleitung zur Übung

  • Erzeuge den Query-Vektor aus query_text.
  • Finde die fünf kleinsten Distanzen und die zugehörigen Indizes mit der Funktion find_n_closest().
  • Iteriere über hits und extrahiere das Produkt an jedem 'index' in der Liste hits.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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"])
Code bearbeiten und ausführen