BaşlayınÜcretsiz Başlayın

Anlamsal arama için vektörleri upsert etme

Biraz metin verisini gömme ve vektörleri/metaveriyi 'pinecone-datacamp' indeksine upsert etme zamanı! Sana squad_dataset.csv adlı bir veri kümesi verildi ve 200 satırlık bir örnek df adlı DataFrame'e yüklendi.

Bu egzersizde, OpenAI API'siyle etkileşime geçip gömme (embedding) modelini kullanmak için kendi API anahtarını oluşturup kullanmana gerek yok. Geçerli bir OpenAI istemcisi senin için oluşturuldu ve client değişkenine atandı.

Görevin, metni OpenAI'nin API'sini kullanarak gömmek ve gömme vektörleri ile metaveriyi squad_dataset ad alanı altında Pinecone indeksine upsert etmek.

Bu egzersiz

Pinecone ile Vektör Veritabanları ve Embeddings

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Pinecone istemcisini kendi API anahtarınla başlat (OpenAI istemcisi client olarak zaten hazır).
  • Partideki her bir row içinden 'id', 'text' ve 'title' metaverisini çıkar.
  • texts listesini OpenAI'nin 'text-embedding-3-small' modeliyle, boyut 1536 olacak şekilde kodla.
  • Vektörleri ve metaverileri 'squad_dataset' adlı bir ad alanına upsert et.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Initialize the Pinecone client
pc = Pinecone(api_key="____")
index = pc.Index('pinecone-datacamp')

batch_limit = 100

for batch in np.array_split(df, len(df) / batch_limit):
    # Extract the metadata from each row
    metadatas = [{
      "text_id": row['____'],
      "text": row['____'],
      "title": row['____']} for _, row in batch.iterrows()]
    texts = batch['text'].tolist()
    
    ids = [str(uuid4()) for _ in range(len(texts))]
    
    # Encode texts using OpenAI
    response = ____(input=____, model="____")
    embeds = [np.array(x.embedding) for x in response.data]
    
    # Upsert vectors to the correct namespace
    ____(vectors=____(ids, embeds, metadatas), namespace=____)
Kodu Düzenle ve Çalıştır