L2-1:RAG通关系列:大文档怎么喂给AI?文本分块的切分艺术
🎯 学习价值读者学完这9关后,将能够:理解RAG全流程原理掌握每个环节的核心技术避开常见坑点独立构建生产级RAG系统你有没有遇到过这样的情况:辛辛苦苦把公司几百页的技术文档导入了RAG系统,心想这下知识库齐活了。结果一测试,问"Redis怎么配置集群",系统给你召回了一段讲Redis安装,另一段讲Java代码规范,还有一段是"3.2.1 章节目录"——完全答非所问。你可能会想:是不是向量化有问题?是不是召回策略不够好?但打开向量库一看,傻眼了——文档被切成了几千个碎片,每个碎片只有一两句话,上下文全丢了;有些碎片干脆把"Redis集群"这个词拆成了"Redis"和"集群"两半,分别存到了不同的块里。这就是文本分块的问题。为什么分块这么重要?先给你讲个我亲历的案例。在以前为某公司搭建了一个法律文档问答系统,用了5万份合同、法律条文。团队把文档按每500字符一切,想着"小块更精准"。结果用户问"合同违约金怎么算",系统召回了三段内容:块1:...违约金按照实际损失计算,但不得超过合同总金额的30%... 块2:...计算方式为:违约金 = 损失金额 × 违约系数... 块3:...甲方未按时付款的,应支付违约金...看起来都对,但问题来了:块1说的是"合同违约金上限",块2说的是"计算公式",块3说的是"甲方违约情形"。这三段来自同一份文档的不同章节,本来应该作为一个完整的答案,但被切散了,