Definire una funzione per suddividere in blocchi
Per poter eseguire upsert in batch in modo riproducibile, devi definire una funzione che suddivida la tua lista di vettori in blocchi.
Il modulo standard itertools è già stato importato per te.
Questo esercizio fa parte del corso
Database vettoriali per Embeddings con Pinecone
Istruzioni dell'esercizio
- Converte l'input
iterablein un iteratore. - Suddividi
itin blocchi di dimensionebatch_sizeusando il moduloitertools. - Emetti (yield) il blocco corrente.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
def chunks(iterable, batch_size=100):
"""A helper function to break an iterable into chunks of size batch_size."""
# Convert the iterable into an iterator
it = ____
# Slice the iterator into chunks of size batch_size
chunk = tuple(itertools.____(it, ____))
while chunk:
# Yield the chunk
____
chunk = tuple(itertools.islice(it, batch_size))