Batch-upserts parallellt
I den här övningen får du öva på att mata in vektorer i Pinecone-indexet 'datacamp-index' parallellt. Du behöver ansluta till indexet, utföra upserts av vektorer i batchar asynkront och sedan kontrollera de uppdaterade mätvärdena för indexet 'datacamp-index'.
Hjälpfunktionen chunks() som du skapade tidigare är fortfarande tillgänglig:
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))
Den här övningen är en del av kursen
Bygga AI-applikationer med Pinecone
Övningsinstruktioner
- Initiera Pinecone-klienten för att tillåta 20 samtidiga anrop.
- Utför upserts av vektorerna i
vectorsi batchar om 200 vektorer per anrop asynkront, med 20 samtidiga anrop konfigurerade. - Skriv ut de uppdaterade mätvärdena för Pinecone-indexet
'datacamp-index'.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____)