Veritabanını sorgulama ve güncelleme

OpenAI API ile Embeddings’e Giriş

Emmanuel Pire

Senior Software Engineer, DataCamp

Veritabanını sorgulama

"insanların çok şarkı söylediği filmler" sorgusu bir gömme modeline verilir, kosinüs uzaklıkları hesaplanır ve nihai sonuçlar saklanır.

OpenAI API ile Embeddings’e Giriş

Veritabanını sorgulama

Arama sorgusu, zaten gömülmüş belgeleri içeren vektör veritabanına doğrudan gömme için verilir.

OpenAI API ile Embeddings’e Giriş

Koleksiyonu alma

from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

collection = client.get_collection(
    name="netflix_titles", 
    embedding_function=OpenAIEmbeddingFunction(api_key="...")
)
  • Koleksiyona veri eklerken kullanılan aynı gömme işlevi belirtilmelidir
OpenAI API ile Embeddings’e Giriş

Koleksiyonu sorgulama

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]]
OpenAI API ile Embeddings’e Giriş

query() birden çok anahtarlı bir sözlük döndürür:

  • ids: Dönen öğelerin kimlikleri
  • embeddings: Dönen öğelerin gömlemeleri
  • documents: Dönen öğelerin kaynak metinleri
  • metadatas: Dönen öğelerin üst verileri
  • distances: Dönen öğelerin sorgu metnine uzaklıkları
{'ids': [...],
 'embeddings': None,
 'documents': [...],
 'metadatas': [...],
 'distances': [...]}
OpenAI API ile Embeddings’e Giriş

Vurgulanan sorgu metni ve ürettiği üç sorgu sonucunun kimlikleri.

  • İlk liste ilk query_text ile eşleşir
  • Birden çok sorgu metni birden çok liste döndürür
OpenAI API ile Embeddings’e Giriş

Sorgu sonuçlarının kimlikleri ve bunlara bağlı belgeler, üst veriler ve uzaklıklar vurgulanmıştır.

OpenAI API ile Embeddings’e Giriş

Bir koleksiyonu güncelleme

collection.update(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Yalnızca güncellenecek alanları ekleyin; diğerleri değişmez
  • Koleksiyon gömlemeleri otomatik oluşturur
OpenAI API ile Embeddings’e Giriş

Bir koleksiyonda upsert

collection.upsert(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Kimlikler yoksa → ekler
  • Kimlikler varsa → günceller
OpenAI API ile Embeddings’e Giriş

Silme

Bir koleksiyondan öğe silme

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

 

Tüm koleksiyonları ve öğeleri silme

client.reset()
  • Uyarı: bu işlem veritabanındaki her şeyi siler!
OpenAI API ile Embeddings’e Giriş

Hadi pratik yapalım!

OpenAI API ile Embeddings’e Giriş

Preparing Video For Download...