ComeçarComece de graça

Inserção de vetores para pesquisa semântica

Hora de incorporar alguns dados de texto e inserir os vetores e metadados no seu índice do 'pinecone-datacamp'! Você recebeu um conjunto de dados chamado squad_dataset.csv, e uma amostra de 200 linhas foi carregada no DataFrame, df.

Neste exercício, pra interagir com a API OpenAI e usar o modelo de incorporação deles, você não precisa criar e usar sua própria chave API. Um cliente OpenAI válido foi criado para você e atribuído à variável client.

A sua tarefa é incorporar o texto usando a API da OpenAI e inserir as incorporações e os metadados no índice Pinecone sob o namespace squad_dataset.

Este exercício faz parte do curso

Bancos de dados vetoriais para incorporações com Pinecone

Ver curso

Instruções do exercício

  • Inicialize o cliente Pinecone com sua chave API (o cliente OpenAI já está disponível em client).
  • Pega os metadados 'id', 'text' e 'title' de cada row no lote.
  • Codifique texts usando 'text-embedding-3-small' da OpenAI com dimensionalidade 1536.
  • Insira os vetores e metadados em um namespace chamado 'squad_dataset'.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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=____)
Editar e executar o código