跳到主要内容

OpenAI 模型推理

Knox 对模型 ID openai/gpt-5.4openai/gpt-5.5 提供了模型感知的推理支持。当请求被路由到 /v1/chat/completions 端点时,Knox 会将请求规范化为所需的 reasoning 对象。

如果您希望在响应中拿到推理内容,请优先使用 /v1/chat/completions/v1/completions 也支持,但它只会返回纯文本结果。

支持的模型

模型允许的 reasoning_effort默认值
openai/gpt-5.4nonelowmediumhighxhighnone
openai/gpt-5.5nonelowmediumhighxhighhigh

openai/gpt-5.4 默认关闭推理,需要显式开启。openai/gpt-5.5 默认使用 high 推理强度。

推荐的请求字段

对于这两个模型,当前使用 reasoning_effort 作为选择推理级别的模型专用开关。

字段类型作用
reasoning_effortstring选择推理强度,Knox 会将它映射到 reasoning.effort
reasoning.summarystring可选。建议用 "auto",这样 chat completions 会保留标准化后的推理摘要。
reasoning.excludeboolean可选。设为 true 时,模型仍会内部推理,但不会返回推理内容。

Knox 会自动补上 reasoning.enabled。当强度为 none 时,推理会被关闭。

Chat Completions 示例

如果您希望在 choices[0].message.reasoning 中直接获取推理内容,这是推荐方式。

curl https://api.knox.chat/v1/chat/completions \
-H "Authorization: Bearer $KNOXCHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.5",
"messages": [
{
"role": "user",
"content": "Design a rollout plan for migrating a monolith to services."
}
],
"reasoning_effort": "xhigh",
"reasoning": {
"summary": "auto",
"exclude": false
}
}'

响应结构示例

{
"choices": [
{
"message": {
"role": "assistant",
"reasoning": "Break the migration into domain boundaries, rollout phases, and fallback controls.",
"content": "Start with domain mapping, then extract the least-coupled service first..."
}
}
]
}

在 GPT-5.4 上显式开启推理

由于 openai/gpt-5.4 默认值是 none,如果您需要推理,请显式传入 reasoning_effort

{
"model": "openai/gpt-5.4",
"messages": [
{
"role": "user",
"content": "Compare blue-green and canary deployments for a payments API."
}
],
"reasoning_effort": "medium",
"reasoning": {
"summary": "auto"
}
}

使用 /v1/completions

Knox 也支持在 /v1/completions 上使用这些模型,以兼容传统的 prompt 风格客户端。

curl https://api.knox.chat/v1/completions \
-H "Authorization: Bearer $KNOXCHAT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-5.5",
"prompt": "Write a phased migration checklist for a Rails monolith.",
"max_tokens": 600,
"reasoning_effort": "high",
"reasoning": {
"summary": "auto"
}
}'

对于 provider-backed 路由,Knox 会先把 prompt 转成 chat messages,再内部走 chat 路径。最终响应会被重新转换成纯文本 completion 格式,因此您会拿到 choices[].text,而不是 choices[].message.reasoning

实用建议

  • 如果您需要在响应里获取推理内容,请使用 /v1/chat/completions
  • 如果您希望 GPT-5.4 和 GPT-5.5 的行为稳定可控,请显式传入 reasoning_effort
  • 如果您只想要最终答案,不想返回推理内容,请使用 reasoning.exclude: true
  • /v1/completions 主要用于兼容旧客户端,它不会保留结构化推理字段。