Coverage for /home/admin/Documents/AI/applications/lexigram-dev/lexigram/experimental/ai/lexigram-ai-rag/src/lexigram/ai/rag/chunking/base.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.15.4, created at 2026-08-25 07:19 +0800

1"""Base classes for document chunking.""" 

2 

3from __future__ import annotations 

4 

5from abc import ABC, abstractmethod 

6from typing import Any 

7 

8from lexigram.ai.rag.chunking.types import Chunk 

9 

10 

11class AbstractChunker(ABC): 

12 """Base class for document chunkers.""" 

13 

14 @abstractmethod 

15 def chunk(self, text: str, metadata: dict[str, Any] | None = None) -> list[Chunk]: 

16 """Split text into chunks. 

17 

18 Args: 

19 text: Text to chunk 

20 metadata: Optional metadata to attach to chunks 

21 

22 Returns: 

23 List of chunks 

24 """