Installation
Copy
npm install praisonai
Basic Usage
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({ chunkSize: 500, overlap: 50 });
const chunks = chunker.chunk('Your long text here...');
chunks.forEach(chunk => {
console.log(`Chunk ${chunk.index}: ${chunk.content.substring(0, 50)}...`);
});
Chunking Strategies
By Size
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({
chunkSize: 500,
overlap: 50,
strategy: 'size'
});
const text = 'A'.repeat(1500);
const chunks = chunker.chunkBySize(text);
console.log(`Created ${chunks.length} chunks`);
By Sentence
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({ strategy: 'sentence' });
const text = 'First sentence. Second sentence. Third sentence.';
const chunks = chunker.chunkBySentence(text);
chunks.forEach(chunk => {
console.log(chunk.content);
});
By Paragraph
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({ strategy: 'paragraph' });
const text = `Paragraph one.
Paragraph two.
Paragraph three.`;
const chunks = chunker.chunkByParagraph(text);
console.log(`Found ${chunks.length} paragraphs`);
Semantic Chunking
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({ strategy: 'semantic' });
const text = `# Header 1
Content under header 1.
# Header 2
Content under header 2.`;
const chunks = chunker.chunkBySemantic(text);
Chunk Structure
Copy
interface Chunk {
content: string; // Chunk text content
index: number; // Chunk index
startOffset: number; // Start position in original
endOffset: number; // End position in original
metadata?: Record<string, any>;
}
Merge Small Chunks
Copy
import { Chunking } from 'praisonai';
const chunker = new Chunking({ strategy: 'sentence' });
const chunks = chunker.chunkBySentence(text);
// Merge chunks smaller than 100 characters
const merged = chunker.mergeSmallChunks(chunks, 100);
Factory Function
Copy
import { createChunking } from 'praisonai';
const chunker = createChunking({
chunkSize: 1000,
overlap: 100,
strategy: 'size'
});
Integration with Knowledge Base
Copy
import { KnowledgeBase, Chunking } from 'praisonai';
const chunker = new Chunking({ chunkSize: 500 });
const kb = new KnowledgeBase();
// Chunk a document and add to knowledge base
const document = 'Your long document text...';
const chunks = chunker.chunk(document);
for (const chunk of chunks) {
await kb.add({
id: `doc_chunk_${chunk.index}`,
content: chunk.content,
metadata: { startOffset: chunk.startOffset }
});
}

