use crate::document::{DocBuilder, Document};
use text_splitter::{ChunkConfig, TextSplitter};
pub async fn recursive_character_text_split(
text: &str,
max_length: Option<usize>,
overlap: Option<usize>,
) -> Vec<Document> {
let config = ChunkConfig::new(max_length.unwrap_or(1000))
.with_overlap(overlap.unwrap_or(0))
.unwrap();
let splitter = TextSplitter::new(config);
let chunks = splitter.chunks(text);
let mut docs = Vec::new();
for chunk in chunks {
let doc = DocBuilder::new().with_page_content(chunk).build();
docs.push(doc);
}
docs
}