最近在做一个企业内部知识库的RAG项目,文档主要是PDF和Word,用LangChain的RecursiveCharacterTextSplitter切分,chunk_size设的512,overlap 50。但实际效果很差,比如用户问“报销流程是什么”,检索出来的片段要么只有前半段条件,要么把表格切得乱七八糟,LLM回答时经常把不同条款拼在一起,出现幻觉。试过调大chunk_size到1024,但召回率又下降了,而且噪声变多。想请教一下大家,这种结构复杂、层级多的文档,chunk到底该怎么切才合理?有没有必要上语义切分或者按标题层级切?还是说应该换种检索策略?真的有点迷茫,求指点。