Chunking

Split documents into optimal chunks for RAG

Chunking splits documents into pieces for better retrieval.

Diagram

Chunking

๐Ÿ“„ Document

โœ‚๏ธ Chunker

๐Ÿ“ Chunk 1

๐Ÿ“ Chunk 2

๐Ÿ“ Chunk 3

Quick Start

  1. Create Agent with Chunked Knowledge
    rust
    use praisonai::{Agent, Knowledge, ChunkingConfig};
    
    // Configure chunking for knowledge base
    let knowledge = Knowledge::new()
        .source("docs/")
        .chunking(ChunkingConfig::semantic()
            .chunk_size(1000)
            .overlap(200))
        .build()?;
    
    // Add documents - they'll be automatically chunked
    knowledge.add_file("guide.pdf").await?;
    
    // Create agent that uses chunked knowledge
    let agent = Agent::new()
        .name("Assistant")
        .instructions("You answer questions using the knowledge base")
        .build()?;
    
    // Search returns relevant chunks
    let chunks = knowledge.search("How do I get started?").await?;

Chunking Strategies

Diagram

Choose Strategy

Technical

Narrative

Structured

Content Type?

Fixed – 500 chars

Semantic – by meaning

Paragraph – natural breaks

StrategyBest For
FixedCode, technical docs
SemanticArticles, narratives
SentenceQ&A, FAQs
ParagraphStructured documents

Configuration

OptionTypeDefaultDescription
chunk_sizeusize1000Characters per chunk
chunk_overlapusize200Overlap between chunks
strategyChunkingStrategySemanticHow to split

Related