Een functie definiëren voor chunking
Om upserts in batches op een reproduceerbare manier te kunnen doen, moet je een functie definiëren die je lijst met vectoren in chunks opsplitst.
De ingebouwde module itertools is al voor je geïmporteerd.
Deze oefening maakt deel uit van de cursus
Vector-databases voor embeddings met Pinecone
Oefeninstructies
- Zet de invoer
iterableom naar een iterator. - Snijd
itin chunks van groottebatch_sizemet behulp van de moduleitertools. - Yield de huidige chunk.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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))