Агент с RAG‑памятью: chunker.py

This commit is contained in:
2026-05-27 06:34:20 +00:00
parent db563df2bb
commit 670ea83751
@@ -0,0 +1,41 @@
<|channel|>final code<|message|>```python
# chunker.py
"""
Модуль для разбиения больших текстов на небольшие чанки.
Использует RecursiveCharacterTextSplitter из LangChain.
Публичный API:
split_text(text: str, chunk_size: int = 1000, chunk_overlap: int = 200) -> List[str]
"""
from typing import List
from langchain.text_splitter import RecursiveCharacterTextSplitter
def split_text(
text: str,
*,
chunk_size: int = 1000,
chunk_overlap: int = 200,
) -> List[str]:
"""
Разбивает входной текст на чанки заданного размера с перекрытием.
Args:
text: Текст, который нужно разбить.
chunk_size: Максимальная длина одного чанкa (по символам).
chunk_overlap: Количество символов, которые будут пересекаться между
соседними чанками. Позволяет сохранить контекст при поиске.
Returns:
Список строк – чанков текста.
"""
if not isinstance(text, str):
raise TypeError("text must be a string")
splitter = RecursiveCharacterTextSplitter(
chunk_size=chunk_size,
chunk_overlap=chunk_overlap,
separators=["\n\n", "\n", " ", ""],
)
return splitter.split_text(text)