需通过API请求体的stop参数配置停止词以实现生成终止,支持字符串数组形式,要求字符长度1-16、无控制符、严格全匹配,且须验证finish_reason为"stop"。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您在调用DeepSeek API时希望模型在生成文本过程中遇到特定字符串时立即终止输出,则需要通过请求体中的stop参数进行配置。以下是实现该功能的具体步骤:
一、确认API版本与模型兼容性
DeepSeek-VL与DeepSeek-Coder系列模型均支持stop参数,但DeepSeek-MoE等部分稀疏架构模型可能限制该字段的使用。需查阅所用模型的官方文档确认是否启用停止词功能。
1、访问DeepSeek官方API文档页面,定位至“Request Parameters”章节。
2、查找stop字段说明,核对支持的模型列表及最大停止词数量(通常为4个)。
3、确认当前调用的model名称与文档中标注的支持状态一致。
二、构造包含stop数组的JSON请求体
stop参数必须为字符串数组,每个元素为长度不小于1、不大于16个Unicode字符的非空字符串,且不能包含控制字符或换行符。
1、在请求体JSON中添加"stop"键,其值为方括号包裹的字符串列表。
2、将目标停止词逐个写入数组,例如需在遇到“答:”或“###”时截断,应写作["答:", "###"]。
3、确保整个JSON结构语法合法,逗号后无多余空格,引号为英文双引号。
三、处理多字节与标点敏感场景
中文标点、全角符号及emoji均被视为独立token,若停止词含此类字符,必须严格匹配原始编码形态,否则无法触发截断。
1、使用Python的json.dumps()序列化请求体,设置ensure_ascii=False保留中文字符原貌。
2、对停止词执行.strip()操作,移除首尾不可见空白符(如U+200B零宽空格)。
3、若需匹配句号结尾,应同时提供“。”和“.”两个版本,因模型分词器可能将其切分为不同token。
四、验证停止行为是否生效
服务端仅在生成token流中检测到完全相同的字符串序列才会终止,不会进行子串匹配或模糊匹配。
1、发起一次测试请求,stop设为["\n\n"],观察返回文本是否在首个连续两个换行处结束。
2、检查响应中choices[0].finish_reason字段值是否为"stop"而非"length"或"null"。
3、对比未设stop时的输出长度与设值后的输出,确认截断位置精确对应数组中任一字符串的末尾字符。
五、规避常见配置错误
非法stop值将导致API返回HTTP 400错误,错误信息中message字段会明确提示具体违规项。
1、删除数组中重复出现的字符串,如["。", "。"]会被拒绝。
2、避免使用空字符串""或仅含空格的字符串,如" "(全角空格)。
3、当需停止于数字序号后,应写为["1.", "2.", "3."],而非正则表达式形式"\\d+\\."——API不支持正则语法。











