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 提供雲端分塊器。