应按语义边界分段而非硬切字符,优先用句末标点(如句号、问号、感叹号)正则分割,再辅以从句连词、逻辑连接词等二次校准,确保因果、转折等关系完整。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要把几万字的中文长文交给DeepSeek处理,但模型直接报错“输入超出上下文窗口”,不是因为文本太长,而是分段方式没对准语义边界——硬按字符切会把“由于协议未校验签名”和“因此存在重放风险”劈成两段,模型根本看不出因果关系。
按句末标点做语义断句
第一步:用正则 r'(? 分割原文,确保每个切片以句号、问号或感叹号结尾,标点必须保留在前一句末尾。
第二步:逐句累加字符数,累计到 ≥ 12000 字符(留出 prompt 和输出余量)时立即封箱,不等下一句——哪怕刚停在半句话中间也要截止,否则下一段开头就缺主语。
第三步:每段开头插入固定指令前缀:【请仅基于本段内容回答问题,不参考其他段落】。这句必须放在最顶行,不能换行,不能加空格,否则模型可能忽略指令。
若某单句本身超 800 字,强制在最近一个逗号或分号处补切;这种长句往往含嵌套从句,硬塞进一段会导致模型注意力分散,输出逻辑混乱。
带重叠的滑动窗口切分
方法一:基础长度设为 16000 字符,重叠取 20%(即 3200 字符),但重叠区必须落在完整句内——宁可少重叠 200 字,也不能截断句子。
方法二:每段末尾加唯一标识,例如【窗口#3-尾部重叠】,方便后期比对重复提取项;API 请求时,必须在 messages[0].content 中显式写入重叠部分,不要指望模型自动“记住”前文。
这一步操作起来很简单,直接把重叠文本粘贴到下一段开头就行,但很多人漏掉标识,导致合并结果时无法区分哪条信息来自哪个窗口。
依文档结构层级划分
识别中文标题最稳的方式是用正则匹配:r'^(第[一二三四五六七八九十]+[章节]|[\d.]+\s+[^\n]+)$',需根据实际格式微调,比如合同常用“第一条”“第二章”,技术文档多用“3.2 接口鉴权流程”。
每个标题块内部再校验长度:若 > 18000 字符,回退到最近一个句号处分割——不能为了凑整章而牺牲句子完整性。
每块开头插入结构提示:【章节起始:4.1 错误码定义】,结尾加【章节终止】;DeepSeek V4 对 Markdown 标题解析不稳定,必须靠预处理显式标记,否则它可能把“附录B”当成正文普通段落。
切分前务必清洗文本
PDF 转文本常带页眉“©2026 DeepSeek 文档库 第 3 页”、全角空格、乱码括号,这些隐藏字符会吃掉 5%~10% 的有效 token 配额。
执行 clean_text() 函数:替换全角标点为半角、压缩连续空白、删除重复行;否则你以为切了 5 段,其实第 3 段因隐藏字符超标被静默截断。










