Mengkueri dan memperbarui database

Pengantar Embeddings dengan OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Mengkueri database

Kueri "movies where people sing a lot" dimasukkan ke model embedding, jarak kosinus dihitung, dan hasil akhir disimpan.

Pengantar Embeddings dengan OpenAI API

Mengkueri database

Kueri pencarian langsung dimasukkan ke basis data vektor untuk di-embedding, yang sudah memuat dokumen ter-embedding.

Pengantar Embeddings dengan OpenAI API

Ambil koleksi

from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

collection = client.get_collection(
    name="netflix_titles", 
    embedding_function=OpenAIEmbeddingFunction(api_key="...")
)
  • Harus gunakan embedding function yang sama seperti saat menambah data
Pengantar Embeddings dengan OpenAI API

Mengkueri koleksi

result = collection.query(
  query_texts=["movies where people sing a lot"],
  n_results=3
)
print(result)
{'ids': [['s4068', 's293', 's2213']],
 'embeddings': None,
 'documents': [['Title: Quién te cantará (Movie)\nDescription: When a near-...',
   'Title: Quartet (Movie)\nDescription: To save their posh retirement home, ...',
   'Title: Sing On! Spain (TV Show)\nDescription: In this fast-paced, high-...']],
 'metadatas': [[None, None, None]],
 'distances': [[0.350419282913208, 0.36049118638038635, 0.37080681324005127]]
Pengantar Embeddings dengan OpenAI API

query() mengembalikan dict dengan beberapa key:

  • ids: ID item yang dikembalikan
  • embeddings: Embedding item yang dikembalikan
  • documents: Teks sumber item yang dikembalikan
  • metadatas: Metadata item yang dikembalikan
  • distances: Jarak item dari teks kueri
{'ids': [...],
 'embeddings': None,
 'documents': [...],
 'metadatas': [...],
 'distances': [...]}
Pengantar Embeddings dengan OpenAI API

Teks kueri disorot bersama id dari tiga hasil kueri yang dihasilkan.

  • Daftar pertama sesuai dengan query_text pertama
  • Beberapa query_text mengembalikan beberapa daftar
Pengantar Embeddings dengan OpenAI API

ID hasil kueri disorot beserta dokumen, metadata, dan jaraknya.

Pengantar Embeddings dengan OpenAI API

Memperbarui koleksi

collection.update(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Sertakan hanya field yang diubah; lainnya tetap
  • Koleksi otomatis membuat embedding
Pengantar Embeddings dengan OpenAI API

Upsert koleksi

collection.upsert(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Jika ID belum ada → tambahkan
  • Jika ID sudah ada → perbarui
Pengantar Embeddings dengan OpenAI API

Menghapus

Hapus item dari koleksi

collection.delete(ids=["id-1", "id-2"])

 

Hapus semua koleksi dan item

client.reset()
  • Peringatan: ini akan menghapus semua isi database!
Pengantar Embeddings dengan OpenAI API

Ayo berlatih!

Pengantar Embeddings dengan OpenAI API

Preparing Video For Download...