Semantic search के लिए वेक्टर upsert करना
अब समय है कुछ टेक्स्ट डेटा को embed करने और वेक्टर तथा मेटाडेटा को आपके 'pinecone-datacamp' इंडेक्स में upsert करने का! आपको squad_dataset.csv नाम का एक डेटासेट दिया गया है, और 200 rows का एक sample DataFrame df में लोड किया गया है.
इस अभ्यास में, OpenAI API से उनके embedding मॉडल का उपयोग करने के लिए, आपको अपना API key बनाने या इस्तेमाल करने की ज़रूरत नहीं है। आपके लिए एक वैध OpenAI client बना दिया गया है और उसे client वैरिएबल में असाइन किया गया है.
आपका कार्य है OpenAI की API का उपयोग करके टेक्स्ट को embed करना और embeddings तथा मेटाडेटा को Pinecone इंडेक्स में squad_dataset namespace के तहत upsert करना.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Pinecone के साथ AI Applications बनाना
अभ्यास निर्देश
- Pinecone client को अपने API key के साथ initialize करें (OpenAI client पहले से
clientके रूप में उपलब्ध है). - बैच की प्रत्येक
rowसे'id','text', और'title'मेटाडेटा निकालें. - OpenAI के
'text-embedding-3-small'सेtextsको dimensionality1536के साथ encode करें. - वेक्टर और metadatas को
'squad_dataset'नामक namespace में upsert करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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=____)