适用场景
- 客服系统接入 DeepSeek 后,长工单经常报上下文超长
- 要让模型分段读完整段对话再合并结论
- 本地部署开源模型、显存有限必须控制单次输入长度
PROMPT
后端工程师把客服工单接进 DeepSeek 后,遇到动辄几万 token 的超长对话被直接截断,需要一个能直接跑的分片脚本时用这个。 【需求】 用 Python 写一个工单对话分片函数,要求: 1. 输入是消息列表,每条含 role(user/agent)和 text,整体预估 3 万到 8 万 token; 2. 按「同一工单内同一发言人的连续消息先合并」再按段落边界切分,单片不超过 8000 token,相邻片重叠 400 token; 3. token 用字符数 × 0.7 估算即可,不引入分词库; 4. 返回分片列表,每片带 start_msg、end_msg 两个下标,方便回溯原文; 5. 附一个调用示例:对每片调用 DeepSeek 生成「这一段用户在抱怨什么」,最后按顺序拼成整单摘要。 【输出要求】 1. 单个可直接运行的 Python 文件,含函数定义与示例调用; 2. 关键参数(8000 / 400 / 0.7)集中放在文件顶部常量区,方便调; 3. 代码里对空对话、单条超长消息(单条就超 8000 token)两种情况给出处理分支; 4. 最后用 5 行注释说明改哪个常量能适配更小的显存。 ---