Agrupando upserts em paralelo
Neste exercício, você vai praticar a ingestão de vetores no índice Pinecone do 'datacamp-index' em paralelo. Você vai precisar se conectar ao índice, fazer upsert de vetores em lotes de forma assíncrona e conferir as métricas atualizadas do índice 'datacamp-index'.
A função auxiliar chunks() que você criou anteriormente ainda está disponível para uso:
def chunks(iterable, batch_size=100):
"""A helper function to break an iterable into chunks of size batch_size."""
it = iter(iterable)
chunk = tuple(itertools.islice(it, batch_size))
while chunk:
yield chunk
chunk = tuple(itertools.islice(it, batch_size))
Este exercício faz parte do curso
Bancos de dados vetoriais para incorporações com Pinecone
Instruções do exercício
- Inicialize o cliente Pinecone pra permitir 20 solicitações ao mesmo tempo.
- Insira os vetores em
vectorsem lotes de 200 vetores por solicitação de forma assíncrona, configurando20solicitações simultâneas. - Imprima as métricas atualizadas do índice Pinecone
'datacamp-index'.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Initialize the client
pc = Pinecone(api_key="____", ____)
index = pc.Index('datacamp-index')
# Upsert vectors in batches of 200 vectors
with pc.Index('datacamp-index', ____) as index:
async_results = [____(vectors=chunk, ____) for chunk in chunks(vectors, batch_size=____)]
[async_result.get() for async_result in async_results]
# Retrieve statistics of the connected Pinecone index
print(____)