Reasoning
通过在生成最终回答之前先生成推理词元(reasoning tokens),推理功能让模型能够透明地展示其思考过程。
要控制推理行为,请在 API 请求中使用 enable_thinking
参数。该参数用于控制模型是否生成 Reasoning tokens。
注意
- 推理模型均支持 Reasoning 能力。
- 仅部分推理模型支持通过
enable_thinking
参数开关推理能力。
支持的模型
推理模型均支持推理(Reasoning)能力,但默认行为存在差异。
- 支持通过
enable_thinking
参数开启推理能力的模型:deepseek-v3.1
: 默认关闭qwen3-8b
:默认关闭qwen3-32b
:默认关闭qwen3-30b-a3b
:默认关闭qwen3-235b-a22b
:默认关闭glm-4.5
:默认开启glm-4.5-air
:默认开启glm-4.5v
:默认开启
- 其他推理模型(如
qwen3-14b
、step3
等)默认开启推理能力。暂不支持enable_thinking
参数,暂无法关闭推理能力。
使用推理功能
针对默认关闭推理能力的模型,要使用推理功能,您需要在 API 请求中设置 enable_thinking
参数为 true
。
以下 curl 命令示例默认从环境变量加载 API 密钥和 Base URL。请注意提前设置环境变量。
API_KEY
:GenStudio API key。请将 CURL 命令中的$API_KEY
修改为您获取的 API 密钥。DEFAULT_BASE_URL
:GenStudio API URL,请使用https://cloud.infini-ai.com/maas/v1
使用 curl
:
shell
curl --request POST \
--url h"${DEFAULT_BASE_URL}/v1/chat/completions" \
--header "Accept: application/json, text/event-stream, */*" \
--header "Authorization: Bearer $API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "deepseek-v3.1",
"messages": [
{
"role": "user",
"content": "9.11 和 9.8 谁大?"
}
],
"enable_thinking": true,
"stream": false
}'
使用 Python Requests
:
python
import os
import requests
DEFAULT_BASE_URL = os.environ["DEFAULT_BASE_URL"]
API_KEY = os.environ["API_KEY"]
url = f"{DEFAULT_BASE_URL}/chat/completions"
payload = {
"model": "deepseek-v3.1",
"messages": [
{
"role": "user",
"content": "9.11 和 9.8 谁大?"
}
],
"enable_thinking": True,
"stream": False
}
headers = {
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream, */*",
"Authorization": f"Bearer {API_KEY}"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
获取推理内容
当启用推理后,模型的内部思考过程将包含在响应格式中。根据是否使用流式响应,结构会有所不同。
非流式响应
在非流式响应中,推理内容包含在消息的 reasoning_content
字段中:
json
{
"id": "843e72a5fae44877bde6e1ecddc85e52",
"object": "chat.completion",
"choices": [
{
"message": {
"role": "assistant",
"content": "Hello, World!",
"reasoning_content": "用户在请求一个对世界的简单问候。"
}
}
]
}
流式响应
在支持推理的模型中使用流式传输时,推理内容会通过增量数据(delta)的 reasoning_content
字段传递。请注意在解析流式响应时做好相应的处理,以正确获取和显示推理内容。
python
# 仅演示流式响应解析逻辑
for chunk in stream:
if not (chunk.choices and chunk.choices[0].delta):
continue
delta = chunk.choices[0].delta
# Handle reasoning content
if getattr(delta, 'reasoning_content', None):
print(delta.reasoning_content, end="")
# Handle regular content
if getattr(delta, 'content', None):
print(delta.content, end="")