เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเรียงลำดับตามความคล้ายคลึง

เมื่อสร้าง embedding ให้กับฟีเจอร์ทั้งหมดแล้ว ขั้นตอนถัดไปคือการคำนวณความคล้ายคลึง ในแบบฝึกหัดนี้ จะได้กำหนดฟังก์ชันชื่อ find_n_closest() ซึ่งคำนวณ cosine distance ระหว่าง query vector กับรายการ embedding และคืนค่าระยะทางที่น้อยที่สุด n ค่าพร้อม index ของแต่ละค่า

ในแบบฝึกหัดถัดไป จะได้นำฟังก์ชันนี้ไปใช้กับแอปพลิเคชันค้นหาสินค้าเชิงความหมาย

distance ได้นำเข้ามาจาก scipy.spatial แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การสร้าง Embeddings ด้วย OpenAI API

ดูคอร์ส

คำแนะนำการฝึกหัด

  • คำนวณ cosine distance ระหว่าง query_vector กับ embedding
  • เพิ่มดิกชันนารีที่มี dist และ index เข้าไปในลิสต์ distances
  • เรียงลำดับลิสต์ distances ตาม key 'distance' ของแต่ละดิกชันนารี
  • คืนค่า n รายการแรกใน distances_sorted

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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 ____
แก้ไขและรันโค้ด