Ürünler için semantik arama
find_n_closest() fonksiyonunu kullanma zamanı! Modellettiğin zenginleştirilmiş veriye dayanarak, bir test sorgusunda semantik ürün aramanı deneyecek ve en semantik olarak benzer beş ürünün sıralı bir listesini hesaplayacaksın.
Önceki egzersizde oluşturduğun find_n_closest() fonksiyonuna bir hatırlatma:
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]
Daha önce oluşturduğun create_embeddings() fonksiyonu da mevcut. Bu fonksiyonun bir metin aldığını ve her bir metin için gömlemeleri içeren liste listesi döndürdüğünü unutma. Daha önce oluşturduğun products sözlüğü ve product_embeddings de yüklendi.
Bu egzersiz, kursun bir parçasıdır
OpenAI API ile Embeddings’e Giriş
Egzersiz talimatları
query_text'ten sorgu vektörünü oluştur.find_n_closest()fonksiyonunu kullanarak en yakın beş mesafeyi ve bunlara karşılık gelen indeksleri bul.hitsüzerinde döngü kur vehitslistesindeki her'index'konumundaki ürünü çıkar.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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"])