OpenAI API 中的 stop
参数是一个工具,可让您控制模型停止生成文本的位置。当您提供 stop
序列(一个字符串或字符串列表)时,API 将在遇到任何指定的序列时立即停止文本生成。这对于防止模型超出所需的点继续生成非常有用,例如在完整句子后结束响应或截断输出以适应特定的格式需求。例如,如果您设置 stop=["\n"]
,模型将在第一个换行符处停止,确保输出不会跨越多行,除非您希望它这样做。
要有效地使用 stop
参数,请将其作为参数的一部分包含在您的 API 请求中。例如,如果您正在构建一个聊天机器人,并且希望响应在用户姓名出现时结束,您可以设置 stop=["John:"]
。模型将生成文本直到检测到“John:”,然后立即停止。同样,您可以使用多个停止序列:stop=["###", "END"]
告诉模型如果生成“###”或“END”则停止。这对于结构化输出特别有用,例如在三个项目后截断列表或在代码片段中的特定关键字处停止。请注意,停止序列区分大小写并且必须完全匹配。
虽然 stop
参数很简单,但也需要考虑一些细微之处。首先,模型在生成停止序列之后停止,因此序列本身不会出现在输出中。例如,如果您使用 stop=["."]
,输出将包含直到句点(但不包括句点)的所有内容。其次,如果停止序列未按预期进行标记化,则模型可能并不总是精确停止。例如,如果模型将停止序列(如 "stop"
)拆分为子词(例如,"st"
和 "op"
),则该停止序列可能不起作用。使用不同的序列进行测试并根据输出来进行调整是关键。最后,避免使用过于通用的停止词(例如 "a"
或 "the"
)以防止意外的提前停止。经过深思熟虑地使用,stop
参数可以精确控制文本生成边界。