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

การค้นหาเชิงความหมายสำหรับสินค้า

ถึงเวลาลองใช้ฟังก์ชัน find_n_closest() แล้ว! ทดสอบการค้นหาสินค้าเชิงความหมายด้วย query ทดสอบ โดยคำนวณรายการสินค้าที่มีความหมายใกล้เคียงกันมากที่สุด 5 รายการแบบเรียงลำดับ จากข้อมูลเสริมที่ป้อนให้กับโมเดลไว้ก่อนหน้านี้

นี่คือฟังก์ชัน find_n_closest() ที่สร้างไว้ในแบบฝึกหัดก่อนหน้า:

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]

ฟังก์ชัน create_embeddings() ที่สร้างไว้ก่อนหน้านี้ก็พร้อมใช้งานเช่นกัน ฟังก์ชันนี้รับข้อความเป็น input และคืนค่าเป็นลิสต์ของลิสต์ที่มี embedding ของแต่ละข้อความ นอกจากนี้ยังได้โหลดดิกชันนารี products และ product_embeddings ที่สร้างไว้ก่อนหน้าไว้ให้แล้ว

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

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

ดูคอร์ส

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

  • สร้าง query vector จาก query_text
  • ค้นหาระยะทางที่ใกล้ที่สุด 5 รายการพร้อม index ที่สอดคล้องกัน โดยใช้ฟังก์ชัน find_n_closest()
  • วนลูปใน hits และดึงข้อมูลสินค้าที่ 'index' แต่ละตัวในลิสต์ hits

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

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

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