Spaces:
Build error
Build error
from typing import Optional, Tuple, List | |
from chromadb.api import BaseAPI | |
from chromadb.api.types import ( | |
Documents, | |
Embeddings, | |
IDs, | |
Metadatas, | |
) | |
def create_batches( | |
api: BaseAPI, | |
ids: IDs, | |
embeddings: Optional[Embeddings] = None, | |
metadatas: Optional[Metadatas] = None, | |
documents: Optional[Documents] = None, | |
) -> List[Tuple[IDs, Embeddings, Optional[Metadatas], Optional[Documents]]]: | |
_batches: List[ | |
Tuple[IDs, Embeddings, Optional[Metadatas], Optional[Documents]] | |
] = [] | |
if len(ids) > api.get_max_batch_size(): | |
# create split batches | |
for i in range(0, len(ids), api.get_max_batch_size()): | |
_batches.append( | |
( # type: ignore | |
ids[i : i + api.get_max_batch_size()], | |
embeddings[i : i + api.get_max_batch_size()] | |
if embeddings | |
else None, | |
metadatas[i : i + api.get_max_batch_size()] if metadatas else None, | |
documents[i : i + api.get_max_batch_size()] if documents else None, | |
) | |
) | |
else: | |
_batches.append((ids, embeddings, metadatas, documents)) # type: ignore | |
return _batches | |