Mulai sekarangMulai gratis

Pencarian semantik untuk produk

Saatnya menggunakan fungsi find_n_closest() Anda! Anda akan menguji pencarian produk semantik pada kueri uji, dengan menghitung daftar berurut dari lima produk yang paling mirip secara semantik, berdasarkan data yang telah Anda perkaya untuk model.

Berikut pengingat fungsi find_n_closest() yang Anda buat pada latihan sebelumnya:

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]

Fungsi create_embeddings() yang Anda buat sebelumnya juga tersedia. Ingat bahwa fungsi tersebut menerima teks dan mengembalikan daftar berisi daftar embedding untuk setiap teks. Kamus products dan product_embeddings yang Anda buat sebelumnya juga telah dimuat.

Latihan ini merupakan bagian dari kursus

Pengantar Embeddings dengan OpenAI API

Lihat Kursus

Instruksi latihan

  • Buat vektor kueri dari query_text.
  • Temukan lima jarak terdekat beserta indeks yang sesuai menggunakan fungsi find_n_closest().
  • Lakukan loop pada hits dan ekstrak produk pada setiap 'index' dalam daftar hits.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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"])
Edit dan Jalankan Kode