Upserts batchen en parallel uitvoeren
In deze oefening ga je vectors parallel inladen in de Pinecone-index 'datacamp-index'. Je moet verbinden met de index, vectors asynchroon in batches upserten en de bijgewerkte statistieken van de 'datacamp-index'-index controleren.
De hulpfunctie chunks() die je eerder hebt gemaakt, is nog steeds beschikbaar:
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))
Deze oefening maakt deel uit van de cursus
Vector-databases voor embeddings met Pinecone
Oefeninstructies
- Initialiseer de Pinecone-client om 20 gelijktijdige requests toe te staan.
- Upsert de vectors in
vectorsin batches van 200 vectors per request, asynchroon, met configuratie voor20gelijktijdige requests. - Print de bijgewerkte statistieken van de Pinecone-index
'datacamp-index'.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)