ÎncepețiÎncepe gratuit

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

Vezi cursul

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 fiecare row din lot.
  • Codifică texts folosind 'text-embedding-3-small' de la OpenAI, cu dimensionalitatea 1536.
  • 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=____)
Editează și rulează codul