Agrupar actualizaciones en paralelo
En este ejercicio, practicarás la ingesta de vectores en el índice Pinecone « 'datacamp-index' » de forma paralela. Tendrás que conectarte al índice, insertar vectores por lotes de forma asíncrona y comprobar las métricas actualizadas del índice 'datacamp-index'.
La función auxiliar chunks() que creaste anteriormente sigue estando disponible para su 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 ejercicio forma parte del curso
Bases de datos vectoriales para incrustaciones con Pinecone
Instrucciones del ejercicio
- Inicializa el cliente Pinecone para permitir 20 solicitudes simultáneas.
- Inserta los vectores en
vectorsen lotes de 200 vectores por solicitud de forma asíncrona, configurando20solicitudes simultáneas. - Imprime las métricas actualizadas del índice Pinecone de
'datacamp-index'.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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(____)