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, kursun bir parçasıdır

Pinecone ile Vektör Veritabanları ve Embeddings

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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