feyninc/chonkiejs

🦛 CHONK your texts with Chonkie ✨ Type-friendly, light-weight, fast and super-simple chunking library

What it solves

Chonkiejs는 TypeScript 개발자를 위한 가볍고 효율적인 텍스트 청킹 라이브러리입니다. Retrieval-Augmented Generation (RAG) 애플리케이션에서 사용하기 위해 대규모 텍스트를 작고 관리 가능한 조각(chunks)으로 나누는 문제를 해결하며, 기존의 무거운 라이브러리에 대한 더 유연하고 빠른 대안을 제공합니다.

How it works

이 라이브러리는 다양한 유형의 콘텐츠를 처리하기 위해 몇 가지 전문화된 청킹 전략을 제공합니다:

  • Recursive Chunking: 문맥을 유지하기 위해 규칙 계층(단락, 문장, 구두점, 단어, 문자)을 사용하여 텍스트를 분할합니다.
  • Token-based Chunking: 텍스트를 고정된 크기의 토큰 청크로 분할하며, 선택적으로 중첩(overlap)이 가능합니다.
  • Sentence Chunking: 문장 경계를 존중하면서 문장을 토큰 크기의 청크로 그룹화합니다.
  • Semantic Chunking: 슬라이딩 윈도우 문장 사이의 임베딩(embedding) 유사도를 사용하여 자연스러운 경계를 감지하고 "저유사도 골짜기(low-similarity valleys)"에서 분할합니다.
  • Code Chunking: 소스 코드를 위해 tree-sitter를 통한 AST-aware 분할을 사용합니다.
  • Table Chunking: 마크다운 또는 HTML 테이블을 원래 헤더를 반복하면서 하위 테이블로 분할합니다.
  • Fast Chunking: 최대 속도를 위해 WASM 기반의 고처리량 바이트 기반 청커를 제공합니다.

Who it’s for

TypeScript 개발자 중 RAG 애플리케이션을 구축하거나 빠른 실시간 텍스트 전처리 및 청킹이 필요한 애플리케이션을 개발하는 사용자.

Highlights

  • Diverse Chunking Methods: 재귀적, 토큰, 문장, 시맨틱, 그리고 전문적인 코드/테이블 청킹을 지원합니다.
  • Type-Safe: 원본 Python chonkie 라이브러리의 TypeScript 포트입니다.
  • Lighweight: 핵심 패키지에 의존성이 없는 실용적이고 효율적인 설계를 지향합니다.
  • HuggingFace Integration: @chonkiejs/token을 통해 HuggingFace tokenizer에 대한 선택적 지원을 제공합니다.
  • Cloud Integration: @chonkiejs/cloud를 통해 클라우드 기반 청커를 제공합니다.