窗口大小应设为0或1用于技术文档,2或3用于政策文件;它决定重排时扩展的相邻文本块数量,默认为0,影响上下文完整性与召回精准度。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在Dify知识库分块检索中,窗口大小(Window Size)直接影响检索召回的上下文完整性与精准度——设得太小会切断语义连贯的句子,设得太大则引入无关噪声、稀释关键信息权重。
理解窗口大小的实际作用
窗口大小指检索时向当前匹配块的前后各扩展多少个相邻文本块参与重排序。它不改变原始分块逻辑,只影响RAG流程中“重排器(reranker)”看到的上下文范围。默认值为0,即仅用原始匹配块本身做重排;设为1时,会额外纳入前1块+后1块,共3块参与打分。
若原始分块粒度为256字符,窗口大小=2,则每次重排实际处理768字符的连续上下文(256×3),但其中只有中间那块是原始命中块,其余是辅助上下文。
根据文档类型调整窗口大小
方法一:技术文档/操作手册类(步骤密集、术语固定)→ 设为0或1
这类文档语义边界清晰,关键信息(如命令行、参数名、错误码)通常独立成块。窗口扩大会把相邻的操作步骤混入当前块的重排上下文,反而干扰模型对核心指令的识别。实测显示,窗口=1时API参数说明块被错误关联到上一步的环境配置块,导致召回准确率下降12%。
方法二:政策文件/合同条款类(长句嵌套、逻辑跨段)→ 设为2或3
例如“乙方应在收到通知后【15个工作日】内提交材料,逾期视为放弃权利,且不影响甲方追究违约责任”这句话常被切在两块之间。窗口=2可确保条件、时限、后果三部分同时进入重排视野,避免仅召回“15个工作日”而丢失“视为放弃权利”这一关键后果。
【窗口≥3时需同步调高rerank_top_k,否则可能因输入超长被截断】
验证窗口大小是否合适
第一步:在Dify后台进入「知识库」→「对应数据集」→「设置」→「检索设置」
第二步:将窗口大小临时改为待测试值(如2),保存并触发一次强制向量化(点击「重新处理」)
第三步:使用固定问题(如“逾期提交材料有什么后果?”)在调试面板执行3次检索,观察返回块中是否完整包含条件句+结果句+责任延伸句
第四步:对比窗口=0时的同一问题结果——若新结果中出现原结果没有的关键动词(如“视为放弃”“追究责任”)、且无新增无关段落(如突然混入付款方式条款),则窗口=2有效


















