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

ระบบแนะนำสินค้า

ในแบบฝึกหัดนี้ จะสร้างระบบแนะนำสินค้าสำหรับร้านค้าออนไลน์ที่จำหน่ายสินค้าหลากหลายประเภท ระบบนี้จะแนะนำสินค้าที่คล้ายกัน 3 รายการให้แก่ผู้ใช้ที่เข้าชมหน้าสินค้าแต่ไม่ได้ซื้อ โดยอิงจากสินค้าชิ้นสุดท้ายที่เข้าชม

มีรายการ dictionary ของสินค้าที่มีจำหน่ายบนเว็บไซต์ให้แล้ว

products = [
    {
        "title": "Smartphone X1",
        "short_description": "The latest flagship smartphone with AI-powered features and 5G connectivity.",
        "price": 799.99,
        "category": "Electronics",
        "features": [
            "6.5-inch AMOLED display",
            ...
            "Fast wireless charging"
        ]
    },
    ...
]

และมี dictionary ของสินค้าชิ้นสุดท้ายที่ผู้ใช้เข้าชม เก็บไว้ในตัวแปร last_product

ฟังก์ชันที่กำหนดเองต่อไปนี้ซึ่งสร้างไว้ก่อนหน้าในคอร์สสามารถนำมาใช้งานได้เลย:

  • create_embeddings(texts) → คืนค่ารายการ embedding สำหรับแต่ละข้อความใน texts
  • create_product_text(product) → รวมคุณสมบัติของ product ให้เป็น string เดียวสำหรับการสร้าง embedding
  • find_n_closest(query_vector, embeddings, n=3) → คืนค่าระยะทางที่ใกล้ที่สุด n รายการพร้อม index ระหว่าง query_vector กับ embeddings โดยอิงจาก cosine distance

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

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

ดูคอร์ส

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

  • รวม text features ของ last_product และของแต่ละสินค้าใน products โดยใช้ create_product_text()
  • สร้าง embedding จาก last_product_text และ product_texts ด้วย create_embeddings() โดยให้ last_product_embeddings เป็นรายการตัวเลขชุดเดียว
  • ค้นหา cosine distance ที่เล็กที่สุด 3 อันดับแรกพร้อม index โดยใช้ find_n_closest()

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

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

# Combine the features for last_product and each product in products
last_product_text = ____
product_texts = ____

# Embed last_product_text and product_texts
last_product_embeddings = ____
product_embeddings = ____

# Find the three smallest cosine distances and their indexes
hits = ____(____, product_embeddings)

for hit in hits:
  product = products[hit['index']]
  print(product['title'])
แก้ไขและรันโค้ด