MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / chunk_text

Function chunk_text

nodedb-query/src/chunk_text.rs:82–103  ·  view source on GitHub ↗

Split text into chunks using the specified strategy. - `chunk_size`: maximum number of **characters** per chunk. - `overlap`: number of characters shared between consecutive chunks. - `strategy`: splitting strategy. Returns a deterministic sequence of chunks. Same input + params → same output.

(
    text: &str,
    chunk_size: usize,
    overlap: usize,
    strategy: ChunkStrategy,
)

Source from the content-addressed store, hash-verified

80///
81/// Returns a deterministic sequence of chunks. Same input + params → same output.
82pub fn chunk_text(
83 text: &str,
84 chunk_size: usize,
85 overlap: usize,
86 strategy: ChunkStrategy,
87) -> Result<Vec<TextChunk>, ChunkError> {
88 if chunk_size == 0 {
89 return Err(ChunkError::InvalidChunkSize);
90 }
91 if overlap >= chunk_size {
92 return Err(ChunkError::OverlapTooLarge);
93 }
94 if text.is_empty() {
95 return Ok(Vec::new());
96 }
97
98 match strategy {
99 ChunkStrategy::Character => chunk_by_characters(text, chunk_size, overlap),
100 ChunkStrategy::Sentence => chunk_by_sentences(text, chunk_size, overlap),
101 ChunkStrategy::Paragraph => chunk_by_paragraphs(text, chunk_size, overlap),
102 }
103}
104
105/// Character-based splitting: advance by `chunk_size - overlap` chars each step.
106fn chunk_by_characters(

Callers 11

character_basicFunction · 0.85
character_with_overlapFunction · 0.85
sentence_basicFunction · 0.85
paragraph_basicFunction · 0.85
empty_textFunction · 0.85
text_smaller_than_chunkFunction · 0.85
utf8_safetyFunction · 0.85
deterministicFunction · 0.85
execute_chunk_textFunction · 0.85

Calls 4

chunk_by_charactersFunction · 0.85
chunk_by_sentencesFunction · 0.85
chunk_by_paragraphsFunction · 0.85
is_emptyMethod · 0.45

Tested by 10

character_basicFunction · 0.68
character_with_overlapFunction · 0.68
sentence_basicFunction · 0.68
paragraph_basicFunction · 0.68
empty_textFunction · 0.68
text_smaller_than_chunkFunction · 0.68
utf8_safetyFunction · 0.68
deterministicFunction · 0.68