kiln_ai.adapters.chunkers.chunker_registry

 1from kiln_ai.adapters.chunkers.base_chunker import BaseChunker
 2from kiln_ai.adapters.chunkers.fixed_window_chunker import FixedWindowChunker
 3from kiln_ai.adapters.chunkers.semantic_chunker import SemanticChunker
 4from kiln_ai.datamodel.chunk import ChunkerConfig, ChunkerType
 5from kiln_ai.utils.exhaustive_error import raise_exhaustive_enum_error
 6
 7
 8def chunker_adapter_from_type(
 9    chunker_type: ChunkerType,
10    chunker_config: ChunkerConfig,
11) -> BaseChunker:
12    match chunker_type:
13        case ChunkerType.FIXED_WINDOW:
14            return FixedWindowChunker(chunker_config)
15        case ChunkerType.SEMANTIC:
16            return SemanticChunker(chunker_config)
17        case _:
18            # type checking will catch missing cases
19            raise_exhaustive_enum_error(chunker_type)
def chunker_adapter_from_type( chunker_type: kiln_ai.datamodel.chunk.ChunkerType, chunker_config: kiln_ai.datamodel.chunk.ChunkerConfig) -> kiln_ai.adapters.chunkers.base_chunker.BaseChunker:
 9def chunker_adapter_from_type(
10    chunker_type: ChunkerType,
11    chunker_config: ChunkerConfig,
12) -> BaseChunker:
13    match chunker_type:
14        case ChunkerType.FIXED_WINDOW:
15            return FixedWindowChunker(chunker_config)
16        case ChunkerType.SEMANTIC:
17            return SemanticChunker(chunker_config)
18        case _:
19            # type checking will catch missing cases
20            raise_exhaustive_enum_error(chunker_type)