chonkie
Chonkie 是一款专为构建高效检索增强生成(RAG)管道而设计的轻量级文本分块库。在 AI 应用开发中,将长文档切割为适合模型处理的片段(Chunking)往往是繁琐且容易出错的环节,开发者常受困于重型库的冗余依赖或自行编写分块逻辑的低效。Chonkie 旨在解决这一痛点,提供“开箱即用”的体验,让用户只需简单安装和导入,即可快速完成从文本获取、智能分块、内容优化到向量数据库写入的全流程。
这款工具非常适合需要处理多语言数据、追求高性能的 AI 工程师、研究人员及后端开发者。其核心技术亮点在于极致的轻量化(安装包仅约 505KB)与卓越的处理速度,同时原生支持 56 种语言的分块需求。Chonkie 不仅提供了递归、语义等多种先进的分块策略,还内置了灵活的流水线(Pipeline)机制,允许用户像搭积木一样串联多个处理步骤。此外,它拥有超过 32 种主流工具和向量数据库的集成方案,无论是本地部署还是云端运行都能无缝衔接。如果你希望摆脱重复造轮子的困扰,用简洁的代码实现稳健的文本预处理,Chonkie 是一个值得尝试的专业选择。
使用场景
某初创团队正在构建一个支持多语言的法律文档智能问答系统,需要将海量复杂的 PDF 合同和法规文本高效转化为 RAG(检索增强生成)可用的向量数据。
没有 chonkie 时
- 开发效率低下:工程师需手动编写递归分割逻辑来处理 Markdown 和法律条文结构,反复调试“切分点”导致项目延期。
- 语义断裂严重:简单的固定长度切分经常切断完整的法律条款上下文,导致 AI 回答时断章取义,准确率大幅波动。
- 资源开销巨大:引入重型 NLP 库进行预处理,导致内存占用高企,在服务器端难以并发处理大量文档。
- 多语言支持困难:面对中英混合的合同文本,缺乏原生多语言支持,需额外集成翻译或分词工具,链路极其复杂。
使用 chonkie 后
- 开箱即用:直接调用
RecursiveChunker并指定 "markdown" 配方,自动识别文档结构,将原本数天的开发工作缩短至几分钟。 - 语义完整保留:利用
SemanticChunker结合重叠优化(Overlap Refinement),确保每个法律条款的完整性,显著提升了检索相关性。 - 轻量极速运行:凭借仅 505KB 的超轻体积,chonkie 在低配服务器上也能实现高速并行处理,大幅降低了云资源成本。
- 原生多语言能力:无需额外配置即可流畅处理 56 种语言的混合文本,完美适配跨国法律文档的复杂场景。
chonkie 通过极简的轻量级设计,将繁琐的文本分块工程转化为标准化的流水线,让团队能专注于核心业务逻辑而非底层数据处理。
运行环境要求
- Linux
- macOS
- Windows
- 非必需
- 仅在使用 NeuralChunker、SemanticChunker (embeddings) 或 SlumberChunker (LLM) 等特定功能时可能需要,具体取决于所选的后端模型(如 sentence-transformers 或自定义 LLM)
未说明(基础安装仅 505KB,内存需求取决于所选的分块策略和加载的模型大小)

快速开始
厌倦了反复编写自己的分块逻辑?受够了大型库带来的性能开销?想快速高效地对文本进行分块吗?强大的河马 Chonkie 来帮您解决问题!
🚀 功能丰富:满足你所有分块需求 🔄 端到端:获取数据、分块、精炼、嵌入,直接送入你的向量数据库! ✨ 易于使用:安装、导入、分块 ⚡ 高速:以光速分块!嗖的一下! 🪶 轻量级:无冗余,只做分块 🔌 32+ 种 [集成]:开箱即用,兼容你最喜爱的工具和向量数据库! 💬 多语言支持:原生支持56种语言 ☁️ 云友好:可在本地或在 云端 进行分块 🦛 可爱的分块吉祥物:悄悄告诉你,它是一只侏儒河马哦 ❤️ Moto Moto 最喜欢的 Python 库
Chonkie 是一款“开箱即用”的分块库 ✨
📦 安装
基本安装
使用 pip:
pip install chonkie
或者使用 uv(更快):
uv pip install chonkie
完整安装
Chonkie 遵循最小化安装原则。如果你有偏好的分块器,可以参考我们的文档,只安装你需要的部分。不想费心?那就直接安装 all 吧(不建议用于生产环境)。
使用 pip:
pip install "chonkie[all]"
或者使用 uv:
uv pip install "chonkie[all]"
🚀 使用
基本用法
以下是一个简单的入门示例:
# 首先从 Chonkie 中导入你想要使用的分块器
from chonkie import RecursiveChunker
# 初始化分块器
chunker = RecursiveChunker()
# 对一段文本进行分块
chunks = chunker("Chonkie 是最棒的小伙伴!我最喜欢的分块河马嘿嘿。")
# 访问分块结果
for chunk in chunks:
print(f"分块内容: {chunk.text}")
print(f"Token 数量: {chunk.token_count}")
流水线用法
你还可以使用 chonkie.Pipeline 将各个组件串联起来,处理复杂的流程。更多关于流水线的信息,请参阅文档!
from chonkie import Pipeline
# 创建一个包含多个分块和精炼步骤的流水线
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")
)
# 对文本进行分块!
doc = pipe.run(texts="Chonkie 是最棒的小伙伴!我最喜欢的分块河马嘿嘿。")
# 在 `doc` 对象中访问处理后的分块
for chunk in doc.chunks:
print(chunk.text)
# 对于高吞吐量的应用,可以异步运行
import asyncio
async def main():
doc = await pipe.arun(texts="Chonkie 跑得真快!")
print(len(doc.chunks))
asyncio.run(main())
更多使用示例请查看文档!
🌐 API 服务器
将 Chonkie 部署为自托管的 REST API,轻松集成到任何应用中:
# 安装时包含 API 相关依赖(包括 catsu,用于多提供商嵌入)
pip install "chonkie[api,semantic,code,catsu]"
# 使用命令行启动服务器
chonkie serve
# 或者使用自定义选项
chonkie serve --port 3000 --reload --log-level debug
# 或者直接使用 uvicorn
uvicorn chonkie.api.main:app --host 0.0.0.0 --port 8000
也可以使用 Docker:
docker compose up
该 API 提供了所有分块器、精炼器以及 流水线 的端点——这些可重用的工作流配置存储在一个本地 SQLite 数据库中。
# 创建一个可重用的流水线
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"}}
]
}'
# 列出你的流水线
curl http://localhost:8000/v1/pipelines
当服务器运行时,交互式文档可在 /docs 页面访问。
✂️ 分块器
Chonkie 提供了多种分块器,帮助您为 RAG 应用高效地拆分文本。以下是可用分块器的简要概述:
| 名称 | 别名 | 描述 |
|---|---|---|
TokenChunker |
token |
将文本拆分为固定大小的标记块。 |
FastChunker |
fast |
基于字节的 SIMD 加速分块,速度可达 100+ GB/s。包含在默认安装中。 |
SentenceChunker |
sentence |
根据句子将文本拆分为块。 |
RecursiveChunker |
recursive |
使用可自定义规则以层次化方式拆分文本,生成语义上有意义的块。 |
SemanticChunker |
semantic |
根据语义相似性将文本拆分为块。灵感来自 Greg Kamradt 的工作。 |
LateChunker |
late |
先对文本进行嵌入,再进行拆分,以获得更好的块嵌入。 |
CodeChunker |
code |
将代码拆分为结构上有意义的块。 |
NeuralChunker |
neural |
使用神经网络模型拆分文本。 |
SlumberChunker |
slumber |
使用 LLM 查找语义上有意义的块来拆分文本。也称为 "AgenticChunker"。 |
有关这些方法及其内部实现的更多信息,请参阅 文档。
🔌 集成
Chonkie 拥有 32 多种集成,涵盖分词器、嵌入提供商、LLM、精炼器、搬运工、向量数据库和实用工具,确保其能够无缝融入您现有的工作流。
👨🍳 厨师 & 📁 获取器!文本预处理和数据加载!
厨师负责文本预处理,而获取器则从各种来源加载数据。
| 组件 | 类 | 描述 | 可选安装 |
|---|---|---|---|
chef |
TextChef |
文本预处理和清洗。 | default |
fetcher |
FileFetcher |
从文件和目录加载文本。 | default |
🏭 使用上下文和嵌入优化您的 CHONK!Chonkie 支持 2 种以上的精炼器!
精炼器可在初始分块后对您的块进行后处理和增强。
| 精炼器名称 | 类 | 描述 | 可选安装 |
|---|---|---|---|
overlap |
OverlapRefinery |
根据相似性合并重叠的块。 | default |
embeddings |
EmbeddingsRefinery |
使用任何提供商为块添加嵌入。 | chonkie[semantic] |
🐴 导出 CHONK!Chonkie 支持 2 种以上的搬运工!
搬运工可以帮助您轻松保存块。
| 搬运工名称 | 类 | 描述 | 可选安装 |
|---|---|---|---|
json |
JSONPorter |
将块导出为 JSON 文件。 | default |
datasets |
DatasetsPorter |
将块导出到 HuggingFace 数据集。 | chonkie[datasets] |
🤝 与您的数据库握手!Chonkie 可连接 8 种以上的向量存储!
握手接口提供了一个统一的界面,可将块直接摄入您喜爱的向量数据库。
| 握手名称 | 类 | 描述 | 可选安装 |
|---|---|---|---|
chroma |
ChromaHandshake |
将块摄入 ChromaDB。 | chonkie[chroma] |
elastic |
ElasticHandshake |
将块摄入 Elasticsearch。 | chonkie[elastic] |
mongodb |
MongoDBHandshake |
将块摄入 MongoDB。 | chonkie[mongodb] |
pgvector |
PgvectorHandshake |
将块摄入带有 pgvector 扩展的 PostgreSQL。 | chonkie[pgvector] |
pinecone |
PineconeHandshake |
将块摄入 Pinecone。 | chonkie[pinecone] |
qdrant |
QdrantHandshake |
将块摄入 Qdrant。 | chonkie[qdrant] |
turbopuffer |
TurbopufferHandshake |
将块摄入 Turbopuffer。 | chonkie[tpuf] |
weaviate |
WeaviateHandshake |
将块摄入 Weaviate。 | chonkie[weaviate] |
🪓 切片与切丁!Chonkie 支持 5 种以上的分词方式!
您可以选择支持的分词器,也可以提供自己的自定义标记计数函数。灵活性至上!
| 名称 | 描述 | 可选安装 |
|---|---|---|
character |
基础的字符级分词器。默认分词器。 | default |
word |
基础的单词级分词器。 | default |
byte |
基于 UTF-8 编码字节操作的字节级分词器。 | default |
tokenizers |
从 Hugging Face 的 tokenizers 库加载任何分词器。 |
chonkie[tokenizers] |
tiktoken |
使用 OpenAI 的 tiktoken 库(例如用于 gpt-4)。 |
chonkie[tiktoken] |
transformers |
通过 HF transformers 中的 AutoTokenizer 加载分词器。 |
chonkie[neural] |
default 表示该功能在默认的 pip install chonkie 中即可使用。
要使用自定义标记计数器,您可以传入任何接受字符串并返回整数的函数!例如:
def custom_token_counter(text: str) -> int:
return len(text)
chunker = RecursiveChunker(tokenizer=custom_token_counter)
您可以利用这一点扩展 Chonkie,以支持您所需的任何分词方案!
🧠 像高手一样嵌入!Chonkie 与 9 多家嵌入伙伴无缝对接!
Chonkie 可以与多种嵌入模型提供商无缝协作。把你最喜欢的嵌入模型带到 CHONK 派对上来吧!只需使用 AutoEmbeddings,即可轻松加载模型。
| 提供商 / 别名 | 类 | 描述 | 可选安装 |
|---|---|---|---|
model2vec |
Model2VecEmbeddings |
使用 Model2Vec 模型。 |
chonkie[model2vec] |
sentence-transformers |
SentenceTransformerEmbeddings |
使用任何 sentence-transformers 模型。 |
chonkie[st] |
openai |
OpenAIEmbeddings |
使用 OpenAI 的嵌入 API。 | chonkie[openai] |
azure-openai |
AzureOpenAIEmbeddings |
使用 Azure OpenAI 嵌入服务。 | chonkie[azure-openai] |
cohere |
CohereEmbeddings |
使用 Cohere 的嵌入 API。 | chonkie[cohere] |
gemini |
GeminiEmbeddings |
使用 Google 的 Gemini 嵌入 API。 | chonkie[gemini] |
jina |
JinaEmbeddings |
使用 Jina AI 的嵌入 API。 | chonkie[jina] |
voyageai |
VoyageAIEmbeddings |
使用 Voyage AI 的嵌入 API。 | chonkie[voyageai] |
litellm |
LiteLLMEmbeddings |
使用 LiteLLM 支持的 100 多种嵌入模型。 | chonkie[litellm] |
🧞♂️ 靠精灵加持!Chonkie 支持 5 家以上的 LLM 提供商!
精灵为大型语言模型(LLMs)提供了交互接口,可用于高级分块策略或其他管道内的任务。
| 精灵名称 | 类 | 描述 | 可选安装 |
|---|---|---|---|
gemini |
GeminiGenie |
与 Google Gemini API 交互。 | chonkie[gemini] |
openai |
OpenAIGenie |
与 OpenAI API 交互。 | chonkie[openai] |
azure-openai |
AzureOpenAIGenie |
与 Azure OpenAI API 交互。 | chonkie[azure-openai] |
groq |
GroqGenie |
在 Groq 硬件上进行快速推理。 | chonkie[groq] |
cerebras |
CerebrasGenie |
在 Cerebras 硬件上实现最快的推理速度。 | chonkie[cerebras] |
你还可以使用 OpenAIGenie 与任何支持 OpenAI API 格式的 LLM 提供商进行交互,只需更改 model、base_url 和 api_key 参数即可。例如,以下是如何使用 OpenAIGenie 通过 OpenRouter 与 Llama-4-Maverick 模型交互:
from chonkie import OpenAIGenie
genie = OpenAIGenie(model="meta-llama/llama-4-maverick",
base_url="https://openrouter.ai/api/v1",
api_key="your_api_key")
🛠️ 工具与辅助功能!Chonkie 内置实用工具!
额外的实用工具,可进一步提升你的分块工作流程。
| 工具名称 | 类 | 描述 | 可选安装 |
|---|---|---|---|
hub |
Hubbie |
HuggingFace Hub 操作的简单封装。 | chonkie[hub] |
viz |
Visualizer |
分块的丰富控制台可视化工具。 | chonkie[viz] |
借助 Chonkie 丰富的集成选项,你可以轻松将其接入现有基础设施,立即开始 CHONKING!
📊 基准测试
“我可能是一只小河马,但我能量十足!” 🦛
Chonkie 不仅可爱,还非常快速高效!以下是它与竞争对手的对比:
体积📦
- Wheel 包大小: 505KB(相比之下,其他方案为 1–12MB)
- 安装后大小: 49MB(相比之下,其他方案为 80–171MB)
- 含语义功能时: 仍比最接近的竞争产品轻 10 倍!
速度⚡
- 按标记分块: 比最慢的替代方案快 33 倍
- 按句子分块: 几乎是竞争对手速度的 2 倍
- 语义分块: 最快可达其他方案的 2.5 倍
查看我们的详细 基准测试,了解 Chonkie 是如何超越竞争对手的! 🏃♂️💨
🤝 贡献
想帮助 Chonkie 不断成长吗?请参阅 CONTRIBUTING.md,开始行动吧!无论是修复 bug、添加新功能,还是改进文档,每一份贡献都能让 Chonkie 成为更适合所有人的 CHONK 工具。
记住:对于这只小河马来说,没有太小的贡献! 🦛
🙏 致谢
Chonkie 特别感谢所有用户和贡献者,正是你们的帮助才让这个库发展到今天的水平!你们的反馈、问题报告和改进建议,都让 Chonkie 变得更加 CHONKIEST。
当然,还要特别感谢 Moto Moto,他用那句经典名言为 Chonkie 打了广告:
“我喜欢大的,我喜欢 CHONK 的。” ~ Moto Moto
📝 引用
如果你在研究中使用了 Chonkie,请按如下方式引用:
@software{chonkie2025,
author = {Minhas, Bhavnick AND Nigam, Shreyash},
title = {Chonkie: 轻量级数据摄取库,用于构建快速、高效且稳健的 RAG 流程},
year = {2025},
publisher = {GitHub},
howpublished = {\url{https://github.com/chonkie-inc/chonkie}},
}
版本历史
v1.6.22026/04/07v1.6.12026/03/18v1.6.02026/03/11v1.5.62026/02/16v1.5.52026/02/04v1.5.42026/01/28v1.5.22026/01/05v1.5.12025/12/26v1.5.02025/12/16v1.4.22025/11/14v1.4.12025/11/03v1.4.02025/10/11v1.3.12025/09/27v1.3.02025/09/19v1.2.12025/08/28v1.2.02025/08/28v1.1.22025/08/06v1.1.12025/07/18v1.1.1a02025/07/17v1.1.02025/07/02常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

