Upsert în loturi în paralel
În acest exercițiu, vei exersa inserarea vectorilor în indexul Pinecone 'datacamp-index' în paralel. Va trebui să te conectezi la index, să inserezi vectorii în loturi în mod asincron și să verifici metricile actualizate ale indexului 'datacamp-index'.
Funcția ajutătoare chunks() creată anterior este în continuare disponibilă:
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))
Acest exercițiu face parte din cursul
Crearea aplicațiilor AI cu Pinecone
Instrucțiuni pentru exercițiu
- Inițializează clientul Pinecone pentru a permite 20 de cereri simultane.
- Inserează vectorii din
vectorsîn loturi de 200 de vectori per cerere asincron, configurând20de cereri simultane. - Afișează metricile actualizate ale indexului Pinecone
'datacamp-index'.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____)