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
Petunjuk latihan
- Inisialisasi klien Pinecone dengan kunci API Anda (klien OpenAI sudah tersedia sebagai
client). - Ekstrak metadata
'id','text', dan'title'dari setiaprowdalam batch. - Encode
textsmenggunakan'text-embedding-3-small'dari OpenAI dengan dimensi1536. - 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=____)