Inserarea vectorilor pentru căutare semantică
E momentul să încorporezi câteva date text și să inserezi vectorii și metadatele în indexul tău 'pinecone-datacamp'! Ai la dispoziție un set de date numit squad_dataset.csv, iar un eșantion de 200 de rânduri a fost încărcat în DataFrame-ul df.
În acest exercițiu, pentru a interacționa cu API-ul OpenAI și a folosi modelul lor de încorporare, nu trebuie să creezi și să folosești propria cheie API. Un client OpenAI valid a fost deja creat și atribuit variabilei client.
Sarcina ta este să încorporezi textul folosind API-ul OpenAI și să inserezi încorporările și metadatele în indexul Pinecone, sub namespace-ul squad_dataset.
Acest exercițiu face parte din cursul
Crearea aplicațiilor AI cu Pinecone
Instrucțiuni pentru exercițiu
- Inițializează clientul Pinecone cu cheia ta API (clientul OpenAI este deja disponibil ca
client). - Extrage metadatele
'id','text'și'title'din fiecarerowdin lot. - Codifică
textsfolosind'text-embedding-3-small'de la OpenAI, cu dimensionalitatea1536. - Inserează vectorii și metadatele într-un namespace numit
'squad_dataset'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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=____)