chonkie

feynincMIT活跃维护

轻量级文本切分库,为 RAG 流水线提供快速、稳定、语义感知的文档分块能力,解决长文本切分质量差的问题。

🦛 CHONK docs with Chonkie ✨ — The lightweight ingestion library for fast, efficient and robust RAG pipelines

v1.7.0发布于 2026-07-07 10:04 UTC4,828star +6 / 7 天370fork同步于 2026-11-10 23:38 UTC

怎么上手

由 README 提炼,执行前请确认
pip install chonkie
硬件要求按 README 说明

README 未说明显存或 GPU 要求;FastChunker 提到 SIMD 加速,但未列出支持的 GPU 厂商或型号。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

轻量级 RAG 文本切分与摄取库,帮你快速把文档切成块并送入向量库

轻量级文本切分库,为 RAG 流水线提供快速、稳定、语义感知的文档分块能力,解决长文本切分质量差的问题。

核心能力

  • 提供 Token、Sentence、Recursive、Semantic 等多种切分器
  • 用 Pipeline 串联切分、精炼、嵌入等步骤并支持异步运行
  • 内置 Overlap 与 Embeddings 精炼器优化切块质量
  • 通过 Handshake 直接写入 Chroma、Qdrant、Pinecone 等向量库
  • 可 chonkie serve 启动自托管 REST API 服务

容易踩的坑

默认只装最小依赖,语义切分、嵌入精炼、各向量库等需按需安装对应 extra(如 chonkie[semantic]);pip install "chonkie[all]" 官方不推荐用于生产环境;启动 API 服务需额外安装 chonkie[api,semantic,code,catsu] 依赖。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.7.0
  1. v1.7.0最新正式版2026-07-07 · 2026-07-07 10:04 UTC

    Chonkie v1.7.0

    What's Changed

    🦙 LiteParse Integration

    Chonkie now integrates with LiteParse, making it easier to parse and chunk a wider range of document formats with a lightweight, dependency-friendly parser.

    🧩 Exposed ComponentRegistry

    ComponentRegistry is now publicly exposed, making it easier to inspect, extend, and build custom integrations on top of Chonkie's component system.

    📚 Revamped Documentation

    The documentation has been completely migrated and redesigned with improved navigation, clearer guides, and a better overall developer experience. It is now hosted on GitHub Pages.

    Other Improvements

    • Improved README and project documentation.
    • Fixed multiple documentation URLs and routing issues.
    • Various dependency updates and maintenance improvements.

    Pull Requests

    Full Changelog: https://github.com/feyninc/chonkie/compare/v1.6.8...v1.7.0

  2. v1.6.82026-06-01 · 2026-06-01 18:07 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/chonkie-inc/chonkie/compare/v1.6.7...v1.6.8

  3. v1.6.8-alpha.1pre-release2026-05-29 · 2026-05-29 18:17 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/chonkie-inc/chonkie/compare/v1.6.7...v1.6.8-alpha.1

  4. v1.6.72026-05-19 · 2026-05-19 04:50 UTC
    查看更新说明

    Chonkie v1.6.7 ✨

    MistralOCR support

    Extract text from images with the new MistralOCR integration:

    from chonkie import MistralOCR
    ocr = MistralOCR()
    out = ocr("image.jpg")
    print(out.content)
    

    What's Changed

    Full Changelog: https://github.com/chonkie-inc/chonkie/compare/v1.6.6...v1.6.7

  5. v1.6.62026-05-13 · 2026-05-13 16:34 UTC
    查看更新说明

    Highlight

    🔥 CodeChunker update and huge performance speedup. bechmarks below using semble as a reference:

    MetricBaselineSemble (uring the current version)Delta% Change
    NDCG@10 (search quality)0.8540.856+0.002+0.2%
    p50 latency7.19 ms6.16 ms-1.03 ms-14.3%
    p90 latency22.15 ms18.57 ms-3.57 ms-16.1%
    p95 latency25.12 ms20.60 ms-4.51 ms-18.0%
    p99 latency28.69 ms23.70 ms-4.99 ms-17.4%
    Index time5,138 ms2,853 ms-2,285 ms-44.5%

    What's Changed

    Dependencies

    Full Changelog: https://github.com/chonkie-inc/chonkie/compare/v1.6.5...v1.6.6

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Chonkie Logo

    🦛 Chonkie ✨

    PyPI version License Documentation Package size codecov Downloads Discord GitHub stars

    The lightweight ingestion library for fast, efficient and robust RAG pipelines

    Installation • Usage • Chunkers • Integrations • Benchmarks

    Tired of making your gazillionth chunker? Sick of the overhead of large libraries? Want to chunk your texts quickly and efficiently? Chonkie the mighty hippo is here to help!

    🚀 Feature-rich: All the CHONKs you'd ever need 🔄 End-to-end: Fetch, CHONK, refine, embed and ship straight to your vector DB! ✨ Easy to use: Install, Import, CHONK ⚡ Fast: CHONK at the speed of light! zooooom 🪶 Light-weight: No bloat, just CHONK 🔌 32+ integrations: Works with your favorite tools and vector DBs out of the box! 💬 ️Multilingual: Out-of-the-box support for 56 languages ☁️ Cloud-Friendly: CHONK locally or in the Cloud 🦛 Cute CHONK mascot: psst it's a pygmy hippo btw ❤️ Moto Moto's favorite python library

    Chonkie is a chunking library that "just works" ✨

    📦 Installation

    Basic Installation

    Using pip:

    pip install chonkie
    

    Or using uv (faster):

    uv pip install chonkie
    

    Full Installation

    Chonkie follows the rule of minimum installs. Have a favorite chunker? Read our docs to install only what you need. Don't want to think about it? Simply install all (Not recommended for production environments).

    Using pip:

    pip install "chonkie[all]"
    

    Or using uv:

    uv pip install "chonkie[all]"
    

    🚀 Usage

    Basic Usage

    Here's a basic example to get you started:

    # First import the chunker you want from Chonkie
    from chonkie import RecursiveChunker
    
    # Initialize the chunker
    chunker = RecursiveChunker()
    
    # Chunk some text
    chunks = chunker("Chonkie is the goodest boi! My favorite chunking hippo hehe.")
    
    # Access chunks
    for chunk in chunks:
        print(f"Chunk: {chunk.text}")
        print(f"Tokens: {chunk.token_count}")
    

    Pipeline Usage

    You can also use the chonkie.Pipeline to chain components together and handle complex workflows. Read more about pipelines in the docs!

    from chonkie import Pipeline
    
    # Create a pipeline with multiple chunking and refinement steps
    pipe = (
        Pipeline()
        .chunk_with("recursive", tokenizer="gpt2", chunk_size=2048, recipe="markdown")
        .chunk_with("semantic", chunk_size=512)
        .refine_with("overlap", context_size=128)
        .refine_with("embeddings", embedding_model="sentence-transformers/all-MiniLM-L6-v2")
    )
    
    # CHONK some Texts!
    doc = pipe.run(texts="Chonkie is the goodest boi! My favorite chunking hippo hehe.")
    
    # Access the processed chunks in the `doc` object
    for chunk in doc.chunks:
        print(chunk.text)
    
    # Run asynchronously for high-throughput applications
    import asyncio
    
    async def main():
        doc = await pipe.arun(texts="Chonkie runs fast!")
        print(len(doc.chunks))
    
    asyncio.run(main())
    

    Check out more usage examples in the docs!

    🌐 API Server

    Run Chonkie as a self-hosted REST API for easy integration into any application:

    # Install with API dependencies (includes catsu for multi-provider embeddings)
    pip install "chonkie[api,semantic,code,catsu]"
    
    # Start the server using the CLI
    chonkie serve
    
    # Or with custom options
    chonkie serve --port 3000 --reload --log-level debug
    
    # Or directly with uvicorn
    uvicorn chonkie.api.main:app --host 0.0.0.0 --port 8000
    

    Or use Docker:

    docker compose up
    

    The API provides endpoints for all chunkers, refineries, and pipelines — reusable workflow configurations stored in a local SQLite database.

    # Create a reusable pipeline
    curl -X POST http://localhost:8000/v1/pipelines \
      -H "Content-Type: application/json" \
      -d '{
        "name": "rag-chunker",
        "steps": [
          {"type": "chunk", "chunker": "semantic", "config": {"chunk_size": 512}},
          {"type": "refine", "refinery": "embeddings", "config": {"embedding_model": "text-embedding-3-small"}}
        ]
      }'
    
    # List your pipelines
    curl http://localhost:8000/v1/pipelines
    

    Interactive documentation is available at /docs when the server is running.

    ✂️ Chunkers

    Chonkie provides several chunkers to help you split your text efficiently for RAG applications. Here's a quick overview of the available chunkers:

    NameAliasDescription
    TokenChunkertokenSplits text into fixed-size token chunks.
    FastChunkerfastSIMD-accelerated byte-based chunking at 100+ GB/s. Included in the default install.
    SentenceChunkersentenceSplits text into chunks based on sentences.
    RecursiveChunkerrecursiveSplits text hierarchically using customizable rules to create semantically meaningful chunks.
    SemanticChunkersemanticSplits text into chunks based on semantic similarity. Inspired by the work of Greg Kamradt.
    LateChunkerlateEmbeds text and then splits it to have better chunk embeddings.
    CodeChunkercodeSplits code into structurally meaningful chunks.
    NeuralChunkerneuralSplits text using a neural model.
    SlumberChunkerslumberSplits text using an LLM to find semantically meaningful chunks. Also known as "AgenticChunker".
    TableChunkertableChunks markdown tables by rows or character count.
    TeraflopAIChunkerteraflopaiSplits text using the TeraflopAI Segmentation API for domain-specific segmentation.

    More on these methods and the approaches taken inside the docs

    🔌 Integrations

    Chonkie boasts 45+ integrations across tokenizers, embedding providers, LLMs, refineries, porters, vector databases, and utilities, ensuring it fits seamlessly into your existing workflow.

    Chefs handle text preprocessing, while Fetchers load data from various sources.

    ComponentClassDescriptionOptional Install
    chefTextChefText preprocessing and cleaning.default
    chefMarkdownChefParse markdown into structured MarkdownDocuments.default
    chefTableChefProcess CSV/Excel files into MarkdownDocuments.chonkie[table]
    chefMistralOCRExtract text from images/PDFs via Mistral OCR API.chonkie[mistral]
    fetcherFileFetcherLoad text from files and directories.default

    Refineries help you post-process and enhance your chunks after initial chunking.

    Refinery NameClassDescriptionOptional Install
    overlapOverlapRefineryMerge overlapping chunks based on similarity.default
    embeddingsEmbeddingsRefineryAdd embeddings to chunks using any provider.chonkie[semantic]

    Porters help you save your chunks easily.

    Porter NameClassDescriptionOptional Install
    jsonJSONPorterExport chunks to a JSON file.default
    datasetsDatasetsPorterExport chunks to HuggingFace datasets.chonkie[datasets]

    Handshakes provide a unified interface to ingest chunks directly into your favorite vector databases.

    Handshake NameClassDescriptionOptional Install
    chromaChromaHandshakeIngest chunks into ChromaDB.chonkie[chroma]
    elasticElasticHandshakeIngest chunks into Elasticsearch.chonkie[elastic]
    mongodbMongoDBHandshakeIngest chunks into MongoDB.chonkie[mongodb]
    pgvectorPgvectorHandshakeIngest chunks into PostgreSQL with pgvector.chonkie[pgvector]
    pineconePineconeHandshakeIngest chunks into Pinecone.chonkie[pinecone]
    qdrantQdrantHandshakeIngest chunks into Qdrant.chonkie[qdrant]
    turbopufferTurbopufferHandshakeIngest chunks into Turbopuffer.chonkie[tpuf]
    weaviateWeaviateHandshakeIngest chunks into Weaviate.chonkie[weaviate]
    lancedbLanceDBHandshakeIngest chunks into LanceDB.chonkie[lancedb]
    milvusMilvusHandshakeIngest chunks into Milvus.chonkie[milvus]

    Choose from supported tokenizers or provide your own custom token counting function. Flexibility first!

    NameDescriptionOptional Install
    characterBasic character-level tokenizer. Default tokenizer.default
    wordBasic word-level tokenizer.default
    byteByte-level tokenizer operating on UTF-8 encoded bytes.default
    tokenizersLoad any tokenizer from the Hugging Face tokenizers library.chonkie[tokenizers]
    tiktokenUse OpenAI's tiktoken library (e.g., for gpt-4).chonkie[tiktoken]
    transformersLoad tokenizers via AutoTokenizer from HF transformers.chonkie[neural]

    default indicates that the feature is available with the default pip install chonkie.

    To use a custom token counter, you can pass in any function that takes a string and returns an integer! Something like this:

    def custom_token_counter(text: str) -> int:
        return len(text)
    
    chunker = RecursiveChunker(tokenizer=custom_token_counter)
    

    You can use this to extend Chonkie to support any tokenization scheme you want!

    Seamlessly works with various embedding model providers. Bring your favorite embeddings to the CHONK party! Use AutoEmbeddings to load models easily.

    Provider / AliasClassDescriptionOptional Install
    model2vecModel2VecEmbeddingsUse Model2Vec models.chonkie[model2vec]
    sentence-transformersSentenceTransformerEmbeddingsUse any sentence-transformers model.chonkie[st]
    openaiOpenAIEmbeddingsUse OpenAI's embedding API.chonkie[openai]
    azure-openaiAzureOpenAIEmbeddingsUse Azure OpenAI embedding service.chonkie[azure-openai]
    cohereCohereEmbeddingsUse Cohere's embedding API.chonkie[cohere]
    geminiGeminiEmbeddingsUse Google's Gemini embedding API.chonkie[gemini]
    jinaJinaEmbeddingsUse Jina AI's embedding API.chonkie[jina]
    voyageaiVoyageAIEmbeddingsUse Voyage AI's embedding API.chonkie[voyageai]
    litellmLiteLLMEmbeddingsUse LiteLLM for 100+ embedding models.chonkie[litellm]
    catsuCatsuEmbeddingsUnified adapter for 11+ providers.chonkie[catsu]
    mistralMistralEmbeddingsUse Mistral's embedding API.chonkie[catsu]
    togetherTogetherEmbeddingsUse Together AI's embedding API.chonkie[catsu]
    mixedbreadMixedbreadEmbeddingsUse Mixedbread's embedding API.chonkie[catsu]
    nomicNomicEmbeddingsUse Nomic's embedding API.chonkie[catsu]
    deepinfraDeepInfraEmbeddingsUse DeepInfra's embedding API.chonkie[catsu]
    cloudflareCloudflareEmbeddingsUse Cloudflare Workers AI embeddings.chonkie[catsu]

    Genies provide interfaces to interact with Large Language Models (LLMs) for advanced chunking strategies or other tasks within the pipeline.

    Genie NameClassDescriptionOptional Install
    geminiGeminiGenieInteract with Google Gemini APIs.chonkie[gemini]
    openaiOpenAIGenieInteract with OpenAI APIs.chonkie[openai]
    azure-openaiAzureOpenAIGenieInteract with Azure OpenAI APIs.chonkie[azure-openai]
    groqGroqGenieFast inference on Groq hardware.chonkie[groq]
    cerebrasCerebrasGenieFastest inference on Cerebras hardware.chonkie[cerebras]

    You can also use the OpenAIGenie to interact with any LLM provider that supports the OpenAI API format, by simply changing the model, base_url, and api_key parameters. For example, here's how to use the OpenAIGenie to interact with the Llama-4-Maverick model via OpenRouter:

    from chonkie import OpenAIGenie
    
    genie = OpenAIGenie(model="meta-llama/llama-4-maverick",
                        base_url="https://openrouter.ai/api/v1",
                        api_key="your_api_key")
    

    Additional utilities to enhance your chunking workflow.

    Utility NameClassDescriptionOptional Install
    hubHubbieSimple wrapper for HuggingFace Hub operations.chonkie[hub]
    vizVisualizerRich console visualizations for chunks.chonkie[viz]

    With Chonkie's wide range of integrations, you can easily plug it into your existing infrastructure and start CHONKING!

    🤖 AI Agent Skills & Plugins

    Chonkie provides an official skill and plugin for AI coding agents, giving them deep knowledge of Chonkie's API, chunking strategies, and pipeline patterns — so they can help you build RAG pipelines faster.

    Supported agents: Claude Code, Cursor, Gemini CLI, and more.

    # Via skills.sh (works with Claude Code, Cursor, Copilot, and 20+ agents)
    npx skills add chonkie-inc/skills
    
    # Claude Code only
    /plugin marketplace add chonkie-inc/skills
    

    Once installed, your agent gains knowledge of all chunkers, the Pipeline API, tokenizer selection, embeddings refineries, vector DB handshakes, the REST API server, recipes, and async/batch processing patterns.

    Learn more at github.com/chonkie-inc/skills.

    📊 Benchmarks

    "I may be smol hippo, but I pack a big punch!" 🦛

    Chonkie is not just cute, it's also fast and efficient! Here's how it stacks up against the competition:

    Size📦

    • Wheel Size: 505KB (vs 1-12MB for alternatives)
    • Installed Size: 49MB (vs 80-171MB for alternatives)
    • With Semantic: Still 10x lighter than the closest competition!

    Speed⚡

    • Token Chunking: 33x faster than the slowest alternative
    • Sentence Chunking: Almost 2x faster than competitors
    • Semantic Chunking: Up to 2.5x faster than others

    Check out our detailed benchmarks to see how Chonkie races past the competition! 🏃‍♂️💨

    🤝 Contributing

    Want to help grow Chonkie? Check out CONTRIBUTING.md to get started! Whether you're fixing bugs, adding features, or improving docs, every contribution helps make Chonkie a better CHONK for everyone.

    Remember: No contribution is too small for this tiny hippo! 🦛

    🙏 Acknowledgements

    Chonkie would like to CHONK its way through a special thanks to all the users and contributors who have helped make this library what it is today! Your feedback, issue reports, and improvements have helped make Chonkie the CHONKIEST it can be.

    And of course, special thanks to Moto Moto for endorsing Chonkie with his famous quote:

    "I like them big, I like them chonkie." ~ Moto Moto

    📝 Citation

    If you use Chonkie in your research, please cite it as follows:

    @software{chonkie2025,
      author = {Minhas, Bhavnick AND Nigam, Shreyash},
      title = {Chonkie: The lightweight ingestion library for fast, efficient and robust RAG pipelines},
      year = {2025},
      publisher = {GitHub},
      howpublished = {\url{https://github.com/chonkie-inc/chonkie}},
    }