版本:LlamaIndex 0.12.x
定位:理解 chunk 质量如何决定回答质量
源码关联:llama_index.core.node_parser、llama_index.core.schema
1. 项目背景
某 SaaS 公司维护着一套庞大的产品手册,涵盖功能介绍、API 文档、配置指南、故障排查等模块。单个文档从几百字到五万字不等,总计超过 500 个 Markdown 文件。团队搭建了知识库问答系统后,发现回答质量极不稳定——同样一个"Webhook 回调地址怎么配置"的问题,有时能精准命中相关章节,有时却答出一段与本产品毫无关系的第三方对接说明,甚至返回完全无关的计费规则段落。
追查根因后,定位到切分策略是问题源头。具体表现为三个层次:
第一,切分太粗(chunk 过大)。一段 3000 字符的切分可能同时包含"API 鉴权流程"“回调地址配置”"重试策略"三个独立主题。检索时因为"鉴权"关键词的语义相似度更高,回调地址配置的段落被压在后面,模型拿不到正确的上下文,只能凭记忆猜测或返回鉴权流程的答案——牛头不对马嘴。
第二,切分太细(chunk 过小)。每段仅 100 字符,一条完整的配置步骤被切成五六段碎片。"在控制台依次点击【设置】→【开发者选项】→【Webhook 管理】→【新增】“这条关键信息散落在三个不同 Node 中,检索时只召回了"Webhook 管理”,丢失了前后操作流程,模型生成