|
|
@@ -3550,8 +3550,8 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
}
|
|
|
|
|
|
// OpenAI Chat Completions 标准参数白名单。
|
|
|
- // 注意:百度 GLM-5.x 始终思考,不支持 thinking 开关(传 disabled 会报 400),
|
|
|
- // 因此不转发 thinking;仅透传网关原生支持的 reasoning_effort(low/high/max)。
|
|
|
+ // 注意:thinking 不在白名单中,由下方按模型单独控制
|
|
|
+ // (glm-5.2 支持关闭思考,glm-5.3 强制思考、不接受 thinking 参数)。
|
|
|
$allowedKeys = [
|
|
|
'temperature',
|
|
|
'top_p',
|
|
|
@@ -3581,9 +3581,42 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- // 百度网关只接受 low / high / max;其它取值(如 none)会导致 400
|
|
|
- if (isset($payload['reasoning_effort']) && !in_array($payload['reasoning_effort'], ['low', 'high', 'max'], true)) {
|
|
|
- unset($payload['reasoning_effort']);
|
|
|
+ // ================= 思考模式策略(仅百度 GLM)=================
|
|
|
+ // 规则:调用方传了的参数以其为准,未传则按模型默认策略补齐。
|
|
|
+ // glm-5.2:支持关闭思考,默认关闭(thinking.disabled),可显著缩短响应时间
|
|
|
+ // glm-5.3:强制思考,网关不接受 thinking 参数(传 disabled 会返回 400),
|
|
|
+ // 因此统一不下发 thinking,只下发 reasoning_effort,默认 low
|
|
|
+ $validEfforts = ['low', 'high', 'max'];
|
|
|
+
|
|
|
+ // 调用方传入的 thinking(兼容 'enabled' 字符串与 ['type' => 'enabled'] 数组两种写法)
|
|
|
+ $inputThinking = null;
|
|
|
+ if (array_key_exists('thinking', $data)) {
|
|
|
+ $rawThinking = $data['thinking'];
|
|
|
+ if (is_array($rawThinking)) {
|
|
|
+ $rawThinking = getProp($rawThinking, 'type', null);
|
|
|
+ }
|
|
|
+ if (in_array($rawThinking, ['enabled', 'disabled'], true)) {
|
|
|
+ $inputThinking = $rawThinking;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 调用方传入的思考强度;百度网关只接受 low / high / max,其它取值(如 none)视为未传
|
|
|
+ $inputEffort = null;
|
|
|
+ if (isset($payload['reasoning_effort']) && in_array($payload['reasoning_effort'], $validEfforts, true)) {
|
|
|
+ $inputEffort = $payload['reasoning_effort'];
|
|
|
+ }
|
|
|
+ unset($payload['reasoning_effort']);
|
|
|
+
|
|
|
+ if ($externalModel === 'glm-5.3') {
|
|
|
+ // glm-5.3 始终思考:即使传入 disabled(或未传)也强制走 reasoning_effort
|
|
|
+ $payload['reasoning_effort'] = $inputEffort ?: 'high';
|
|
|
+ } else {
|
|
|
+ // glm-5.2 支持关闭思考:未显式开启思考时默认关闭
|
|
|
+ $thinkingType = ($inputThinking === 'enabled') ? 'enabled' : 'disabled';
|
|
|
+ $payload['thinking'] = ['type' => $thinkingType];
|
|
|
+ if ($thinkingType === 'enabled') {
|
|
|
+ $payload['reasoning_effort'] = $inputEffort ?: 'high';
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if ($stream && !isset($payload['stream_options'])) {
|
|
|
@@ -9130,7 +9163,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
];
|
|
|
|
|
|
// 模型兼容性处理:deepseek-chat 和 deepseek-reasoner 映射到 deepseek-v4-flash
|
|
|
- $thinkingMode = getProp($data, 'thinking', 'disabled'); // 默认非思考模式
|
|
|
+ $thinkingMode = getProp($data, 'thinking', 'enabled'); // 默认思考模式
|
|
|
$reasoningEffort = getProp($data, 'reasoning_effort', 'high'); // 默认思考强度
|
|
|
|
|
|
if ($model === 'deepseek-chat') {
|
|
|
@@ -10526,7 +10559,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
}
|
|
|
|
|
|
// 模型兼容性处理:deepseek-chat 和 deepseek-reasoner 映射到 deepseek-v4-flash
|
|
|
- $thinkingMode = getProp($data, 'thinking', 'disabled'); // 默认非思考模式
|
|
|
+ $thinkingMode = getProp($data, 'thinking', 'enabled'); // 默认非思考模式
|
|
|
$reasoningEffort = getProp($data, 'reasoning_effort', 'high'); // 默认思考强度
|
|
|
|
|
|
if ($model === 'deepseek-chat') {
|
|
|
@@ -12137,7 +12170,7 @@ Q版卡通风格,头大身小,造型圆润可爱,线条简单,色彩明
|
|
|
}
|
|
|
|
|
|
// 模型兼容性处理:deepseek-chat 和 deepseek-reasoner 映射到 deepseek-v4-flash
|
|
|
- $thinkingMode = getProp($data, 'thinking', 'disabled'); // 默认非思考模式
|
|
|
+ $thinkingMode = getProp($data, 'thinking', 'enabled'); // 默认非思考模式
|
|
|
$reasoningEffort = getProp($data, 'reasoning_effort', 'high'); // 默认思考强度
|
|
|
|
|
|
if ($model === 'deepseek-chat') {
|