add chunker.py
This commit is contained in:
+19
-12
@@ -1,19 +1,26 @@
|
|||||||
"""
|
"""
|
||||||
Chunking utilities using RecursiveCharacterTextSplitter.
|
Chunking utilities for the RAG agent.
|
||||||
|
|
||||||
|
This module provides a single function `get_text_splitter` that returns a
|
||||||
|
:class:`langchain.text_splitter.RecursiveCharacterTextSplitter` configured to
|
||||||
|
split documents into chunks of 500 characters with an overlap of 100.
|
||||||
|
|
||||||
|
The splitter is used by :mod:`agent` when ingesting files.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from langchain_text_splitters import RecursiveCharacterTextSplitter
|
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
||||||
|
|
||||||
# Configure splitter: chunk size 500, overlap 100
|
|
||||||
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)
|
|
||||||
|
|
||||||
def split_text(text: str) -> list[str]:
|
def get_text_splitter() -> RecursiveCharacterTextSplitter:
|
||||||
"""Split a large text into chunks.
|
"""Return a configured text splitter.
|
||||||
|
|
||||||
Args:
|
The splitter uses a chunk size of 500 characters and an overlap of 100
|
||||||
text: The raw document content.
|
characters. These values are chosen to balance context length with the
|
||||||
|
ability to retrieve relevant passages during semantic search.
|
||||||
Returns:
|
|
||||||
List of string chunks.
|
|
||||||
"""
|
"""
|
||||||
return splitter.split_text(text)
|
return RecursiveCharacterTextSplitter(
|
||||||
|
chunk_size=500,
|
||||||
|
chunk_overlap=100,
|
||||||
|
)
|
||||||
|
|
||||||
|
# End of chunker.py
|
||||||
|
|||||||
Reference in New Issue
Block a user