feyninc/chonkiejs
🦛 CHONK your texts with Chonkie ✨ Type-friendly, light-weight, fast and super-simple chunking library
What it solves
Chonkiejs 是一個為 TypeScript 開發者設計的輕量級、高效的文本分塊函式庫。它解決了將大型文本拆分為較小、易於管理的片段(chunks)以用於檢索增強生成(RAG)應用程式的問題,為現有的笨重函式庫提供了一個更靈活且更快速的替代方案。
How it works
該函式庫提供幾種專門的分塊策略來處理不同類型的內容:
Recursive Chunking: 使用規則層級(段落、句子、標點符號、單詞、字符)來拆分文本,以維持內容的上下文。
Token-based Chunking: 將文本拆分為固定大小的 token 塊,並可選擇是否重疊。
Sentence Chunking: 在尊重句子邊界的同時,將句子分組為 token 大小的塊。
Semantic Chunking: 使用滑動句子窗口之間的嵌入(embedding)相似度來檢測自然邊界,並在「低相似度谷值」處進行拆分。
Code Chunking: 對於源碼,使用透過 tree-sitter 實現的 AST-aware 分塊。
Table Chunking: 將 markdown 或 HTML 表格拆分為子表格,同時重複原始標題。
Fast Chunking: 一個由 WASM 驅動的高吞吐量基於字節的分塊器,旨在實現最大速度。
Who it’s for
TypeScript 開發者,正在構建 RAG 應用程式或任何需要快速、即時文本預處理和分塊的應用程式。
Highlights
- Diverse Chunking Methods: 支持遞迴、token、句子、語義和專門的程式碼/表格分塊。
- Type-Safe: 原生 Python
chonkie函式庫的 TypeScript 版本。 - Lighweight: 設計旨在實用且高效,核心包中零依賴。
- HuggingFace Integration: 透過
@chonkiejs/token提供對 HuggingFace tokenizers 的可選支持。 - Cloud Integration: 透過
@chonkiejs/cloud提供雲端分塊器。