1. 传统分块技术的困境与突破
在构建RAG(检索增强生成)系统时,文本分块的质量直接影响最终效果。过去两年处理企业级知识库项目的经历让我深刻体会到:传统分块方法造成的语义断裂问题,已经成为制约RAG准确率的首要瓶颈。
最近接到一个典型案例:某金融科技公司的产品文档中,"风险控制模型"这个核心概念在多个章节被反复阐述,但RAG系统检索时总是漏掉关键描述。经过排查发现,传统分块方式将这些关联内容分散在不同区块,导致LLM无法获取完整上下文。
1.1 传统分块方法的致命缺陷
目前主流的分块技术主要有两类:
固定长度分块(如递归字符分割):
- 优点:实现简单,计算成本低
- 致命伤:机械切割破坏语义连贯性
- 典型场景:当遇到"Transformer架构...(间隔多段)...其核心是自注意力"这类跨段落表述时,关键信息被强行拆解
语义分块(基于句子相似度):
- 进步:能识别局部语义变化
- 局限:无法处理话题回跳(topic revisiting)场景
- 典型案例:技术文档中先介绍功能A,穿插注意事项后继续讨论A的细节,语义分割会错误创建新块
1.2 人工分块的启示
观察专业文档工程师的工作方式会发现,人类分块有三大特征:
- 主题优先:跨越物理距离聚合相关语句
- 动态调整:根据新增内容实时修正区块归属
- 层级嵌套:主块下建立子主题块
这启发了Agentic Chunking的设计哲学——用LLM模拟人类分块的认知过程。在最近为某医疗知识库实施的案例中,采用该方法使临床指南的检索准确率从58%提升至82%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Agentic Chunking技术解析
2.1 核心架构设计
该技术的实现框架包含三个关键组件:
命题化引擎(Propositioning Engine)
python复制class Proposition(BaseModel):
id: str = Field(default_factory=lambda: str(uuid.uuid4()))
text: str
entities: List[str] # 提取的主语/宾语实体
topics: List[str] # 所属主题标签
