การคิวรีหลายรายการและการกรองข้อมูล

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

Emmanuel Pire

Senior Software Engineer, DataCamp

คำแนะนำภาพยนตร์จากข้อมูลหลายจุด

 

  • Terrifier (id: 's8170')
  • Strawberry Shortcake: Berry Bitty Adventures (id: 's8103')
การสร้าง Embeddings ด้วย OpenAI API

การใช้ข้อความคิวรีหลายรายการ

reference_ids = ['s8170', 's8103']


reference_texts = collection.get(ids=reference_ids)["documents"]
result = collection.query( query_texts=reference_texts, n_results=3 )
การสร้าง Embeddings ด้วย OpenAI API

ผลลัพธ์จากการคิวรีหลายรายการ

{'ids': [['s8170', 's6939', 's7000'],['s8103', 's2968', 's3085']],
 'embeddings': None,
 'documents': [['Title: Terrifier (Movie)...',
   'Title: Haunters: The Art of the Scare (Movie)...',
   'Title: Horror Story (Movie)...'],
  ["Title: Strawberry Shortcake: Berry Bitty Adventures (TV Show)...",
   "Title: Shopkins (TV Show)...",
   "Title: Rainbow Ruby (TV Show)..."]],
 'metadatas': [[None, None, None], [None, None, None]],
 'distances': [[0.00, 0.25, 0.26], [0.00, 0.25, 0.28]]}
การสร้าง Embeddings ด้วย OpenAI API

การเพิ่ม metadata

import csv 

ids = []
metadatas = []

with open('netflix_titles.csv') as csvfile:
  reader = csv.DictReader(csvfile)
  for i, row in enumerate(reader):
    ids.append(row['show_id'])
    metadatas.append({
      "type":row['type'],
      "release_year": int(row['release_year'])
    })

 

  • สร้าง list ของ dict สำหรับ metadatas
  • สร้าง list ของ ID เพื่อเพิ่มเข้ากับรายการที่มีอยู่
การสร้าง Embeddings ด้วย OpenAI API

การเพิ่มและคิวรี metadata

 

collection.update(ids=ids, metadatas=metadatas)
result = collection.query(
    query_texts=reference_texts, 
    n_results=3,
    where={ 
        "type": "Movie"
    }
)
การสร้าง Embeddings ด้วย OpenAI API

ตัวดำเนินการ where

where={
  "type": "Movie"
}

เทียบเท่ากับ

where={
  "type": {
    "$eq": "Movie"
  }
}

รายการตัวดำเนินการ:

  • $eq - เท่ากับ (string, int, float)
  • $ne - ไม่เท่ากับ (string, int, float)
  • $gt - มากกว่า (int, float)
  • $gte - มากกว่าหรือเท่ากับ (int, float)
  • $lt - น้อยกว่า (int, float)
  • $lte - น้อยกว่าหรือเท่ากับ (int, float)
การสร้าง Embeddings ด้วย OpenAI API

การใช้ตัวกรอง where หลายเงื่อนไข

where={
    "$and": [
        {"type": 
            {"$eq": "Movie"}
        },
        {"release_year": 
             {"$gt": 2020}
        }
    ]
}

 

  • $or: กรองตามเงื่อนไขอย่างน้อยหนึ่งข้อ
การสร้าง Embeddings ด้วย OpenAI API
Title: A Classic Horror Story (Movie) [...]
===
Title: Nightbooks (Movie) [...]
===
Title: Irul (Movie) [...]
===
Title: Intrusion (Movie) [...]
===
Title: Things Heard & Seen (Movie) [...]
===
Title: A StoryBots Space Adventure (Movie) [...]
การสร้าง Embeddings ด้วย OpenAI API

มาฝึกกันเถอะ!

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

Preparing Video For Download...