最近在做一个基于私有知识库的问答demo,用的langchain+openai embeddings+chroma。文档是几十页的PDF转的txt,我直接按固定长度500字符切分,重叠50。结果发现很多问题:比如用户问“合同有效期”,检索出来的chunk经常是某个条款列表的中间一段,甚至把两个不同章节的内容拼在一起。我试过调大top_k,但感觉召回的内容还是不够精准。想问问大家一般怎么处理长文档的切分?是不是应该按章节结构来切?还有没有别的召回策略能改善这种语义错位的问题?