在 GPT 5 中,OpenAI 引入了数个新的参数与工具。本文将介绍如何使用以及它们的作用。
1. Verbosity(详细程度)参数
期待一个 low, medium, high 中的值。控制模型输出的详细程度。
当为 high 时,模型将更愿意解释更多,并深入更多细节。
当为 low 时,模型将专注于回答并仅回答用户的问题。
当为 medium 时,将能够取得一个较好的平衡。
输出标记与详细程度大致呈线性关系。一个示例是,对于完全相同的提问,三种详细程度分别给出了 560, 849 和 1288 令牌的回答。
另一个例子是,对于一个编码领域的任务:
low详细程度产生最小的功能性脚本,没有额外的注释或结构;medium添加了解释性注释、功能结构和可重复性控制;high产生了全面的、可用于生产的脚本,其中包含参数解析、多种排序方法、计时/验证、使用说明和最佳实践技巧。
简单来说
此参数可可靠地调整模型输出的长度和深度,同时保持正确性和推理质量,而无需更改底层提示。
2. 更自由的函数调用
简单来说,之前的工具调用模型必须以 JSON 格式输出,带有特定参数。但 GPT 5 中,模型可以以纯文本作为工具调用的输出。也就是直接生成原始文本/代码,而不需要 JSON 包装。
可能还是有点复杂,上示例。
- 在改动之前,一个执行 Python 代码的工具,模型总是会使用 JSON 输出:
{
"code": "import math\narea = math.pi * 5**2"
}
- 但现在,可以让模型以纯文本格式输出:
import math
area = math.pi * 5**2
3. 上下文无关语法
这个相当绕。简单来说,这个可以严格约束模型输出格式。你甚至可以使用正则表达式约束模型的输出!
这个功能从采样层面约束了模型生成。
例如,传入正则表达式
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3]):[0-5]\d$
作为 CFG,那么模型的输出就 100% 遵守此正则表达式。
需要注意的是这个约束的不是模型的输出而是模型通过工具调用给出的输出。
一个 Python 示例为:
from openai import OpenAI
client = OpenAI()
timestamp_grammar_definition = r"^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]) (?:[01]\d|2[0-3]):[0-5]\d$"
timestamp_prompt = (
"Call the timestamp_grammar to save a timestamp for August 7th 2025 at 10AM."
)
client.responses.create(
model="gpt-5",
input=timestamp_prompt,
text={"format": {"type": "text"}},
tools=[
{
"type": "custom",
"name": "timestamp_grammar",
"description": "Saves a timestamp in date + time in 24-hr format.",
"format": {
"type": "grammar",
"syntax": "regex",
"definition": timestamp_grammar_definition
}
},
],
parallel_tool_calls=False
)
# 输出:
# 2025-08-07 10:00
注:实际上同时支持 Lark 语法,但由于过于复杂本文不赘述。
4. 最低限度的推理
这个就是支持了 minimal 作为推理登记。基本上和无思考没有什么太大的不同。
由于已经被广泛使用,这里不再赘述。
原创由 Tethys Plex
学习了