MulaiMulai sekarang secara gratis

Upsert vektor untuk pencarian semantik

Saatnya membuat embedding dari data teks dan melakukan upsert vektor serta metadata ke indeks 'pinecone-datacamp' Anda! Anda telah diberikan himpunan data bernama squad_dataset.csv, dan sampel 200 baris telah dimuat ke dalam DataFrame df.

Dalam latihan ini, untuk berinteraksi dengan OpenAI API menggunakan model embedding mereka, Anda tidak perlu membuat dan menggunakan kunci API milik Anda sendiri. Klien OpenAI yang valid telah dibuat untuk Anda dan ditetapkan ke variabel client.

Tugas Anda adalah membuat embedding teks menggunakan API OpenAI dan melakukan upsert embedding beserta metadata ke indeks Pinecone di bawah namespace squad_dataset.

Latihan ini adalah bagian dari kursus

Database Vektor untuk Embeddings dengan Pinecone

Lihat Kursus

Petunjuk latihan

  • Inisialisasi klien Pinecone dengan kunci API Anda (klien OpenAI sudah tersedia sebagai client).
  • Ekstrak metadata 'id', 'text', dan 'title' dari setiap row dalam batch.
  • Encode texts menggunakan 'text-embedding-3-small' dari OpenAI dengan dimensi 1536.
  • Lakukan upsert vektor dan metadata ke namespace bernama 'squad_dataset'.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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=____)
Edit dan Jalankan Kode