Định nghĩa hàm để chia nhỏ (chunking)
Để có thể upsert theo lô (batch) một cách nhất quán, bạn cần định nghĩa một hàm để chia danh sách vector của mình thành các phần nhỏ.
Mô-đun dựng sẵn itertools đã được nhập sẵn cho bạn.
Bài tập này là một phần của khóa học
Cơ sở dữ liệu vector cho Embeddings với Pinecone
Hướng dẫn bài tập
- Chuyển đầu vào
iterablethành một iterator. - Cắt
itthành các phần có kích thướcbatch_sizebằng mô-đunitertools. - Yield phần hiện tại.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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))