Föra in vektorer för semantisk sökning
Dags att bädda in textdata och föra in vektorerna med metadata i ditt 'pinecone-datacamp'-index! Du har fått tillgång till ett dataset med namnet squad_dataset.csv, och ett urval på 200 rader har laddats in i DataFramen df.
I den här övningen behöver du inte skapa eller använda en egen API-nyckel för att anropa OpenAI:s API och använda deras inbäddningsmodell. En giltig OpenAI-klient har redan skapats och tilldelats variabeln client.
Din uppgift är att bädda in texten med OpenAI:s API och föra in inbäddningarna och metadata i Pinecone-indexet under namnrymden squad_dataset.
Den här övningen är en del av kursen
Bygga AI-applikationer med Pinecone
Övningsinstruktioner
- Initiera Pinecone-klienten med din API-nyckel (OpenAI-klienten är redan tillgänglig som
client). - Extrahera metadata för
'id','text'och'title'från varjerowi batchen. - Koda
textsmed'text-embedding-3-small'från OpenAI med dimensionaliteten1536. - För in vektorerna och metadata i en namnrymd som heter
'squad_dataset'.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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=____)