首页/AI/AI 应用速查/stop 序列:让模型在该停的地方停

stop 序列:让模型在该停的地方停

stop 参数指定停止串(最多若干个,各家上限不同):生成到指定内容立即终止,能防止模型“说完正事再客套”。适合模板化输出与多段拼接场景,但要防误伤。

AI 应用速查AI更新于 2026-10-13

stop 序列是什么

stop 参数指定一个或多个停止串,模型生成到该内容时立即终止,后续不再产生 token。它把输出边界交给生成过程本身执行,而不是生成完再用字符串裁剪,因此在分节生成、多段拼接、模板化输出这些场景下既更省也更稳。风险集中在误伤:停止串如果太通用,正文里一旦出现就会被提前截断,输出看起来莫名其妙地断掉了。

基本信息

作用命中停止串即结束生成,未产生的后续 token 不再计费
常见用法分节分隔符、代码结束标记、自定义终止标记
数量上限各厂商不同,例如 OpenAI 侧上限为 4 个停止序列
输出包含性停止串本身是否包含在返回内容中,按厂商定义,多为不包含
与长度限制关系与最大 token 数共同作用,先到者生效
流水线用法按节生成后拼接,用停止串精确控制每节的边界

典型使用场景

  • 分节生成:同一提示词分多次产出各章节,靠停止串切出干净边界
  • 结构化输出:生成 JSON 后不想再追加客套话,用停止串截断尾部的解释
  • 代码生成:以固定的结束标记作为终止条件,避免多出示例代码
  • 并行分段生成:多个请求同时产出不同段落,最后按约定的分隔符合并
  • 成本控制:早停即省,长回答场景下停止串能直接减少输出 token

分节输出与停止串

分节输出与停止串
# stop 指定后,模型生成到该串立即停止
curl https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "model": "gpt-4o-mini",
        "messages": [{"role": "user", "content": "给出两条建议,每条以 --- 结尾"}],
        "stop": ["###END###"]
      }'
# 提示词里也要声明终止约定,否则模型不会主动输出该标记
# 停止串选得越长越特异,正文里意外出现的概率越低

常见问题与处理

情形表现处理
停止串太通用正文出现该词就断选用长且不自然出现的标记
模型不输出标记生成到长度上限才停在提示词中显式要求输出终止标记
迁移到其他厂商停止串数量超限被静默忽略核对目标厂商的上限与是否包含停止串
多段拼接错位缺少分隔符导致段落黏连统一约定分隔符并做拼接后校验
与长度上限冲突先到者生效,输出被截两者的预期作用范围分开设计
拼接式流水线用停止串控制边界,比事后按字符串裁剪更省也更稳:后者要多生成一段再删掉,前者在命中时就已经停止计费。
停止串要选正常人不会写出来的内容:选用「完」「结束」这类常见词,正文里出现一次就会导致输出被意外截断,而且这类问题在测试短样本时很难发现。

易错点

  • 停止串选得太通用:正文里恰好出现该内容,输出被提前截断且难以复现
  • 只在参数里设停止串却在提示词中不提:模型不会主动输出该标记,设置形同虚设
  • 迁移厂商时沿用旧的停止串列表:数量超限被静默忽略,行为悄悄改变
  • 依赖停止串省略后处理校验:不同厂商对停止串是否包含在输出中的定义不同,拼接结果出现空段
  • 多段拼接不做校验:某段提前终止时缺少结束标记,最终内容缺块却无告警

数据来源与参考

  • OpenAI/Anthropic 参数文档(stop / stop_sequences)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌