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提供云端分块器。