fix(providers): stop forcing reasoning effort on proxy completions

This commit is contained in:
Vincent Koc
2026-04-04 02:14:01 +09:00
parent dd35b97398
commit dd42154e45
3 changed files with 12 additions and 3 deletions

View File

@@ -10,6 +10,7 @@ type OpenAICompletionsCompatDefaultsInput = {
export type OpenAICompletionsCompatDefaults = {
supportsStore: boolean;
supportsDeveloperRole: boolean;
supportsReasoningEffort: boolean;
supportsUsageInStreaming: boolean;
supportsStrictMode: boolean;
};
@@ -48,6 +49,11 @@ export function resolveOpenAICompletionsCompatDefaults(
supportsStore:
!isNonStandard && knownProviderFamily !== "mistral" && !usesExplicitProxyLikeEndpoint,
supportsDeveloperRole: !isNonStandard && !isMoonshotLike && !usesConfiguredNonOpenAIEndpoint,
supportsReasoningEffort:
!isZai &&
knownProviderFamily !== "mistral" &&
endpointClass !== "xai-native" &&
!usesExplicitProxyLikeEndpoint,
supportsUsageInStreaming: !isNonStandard && !usesConfiguredNonOpenAIEndpoint,
supportsStrictMode: !isZai && !usesConfiguredNonOpenAIEndpoint,
};

View File

@@ -406,15 +406,19 @@ describe("openai transport stream", () => {
},
],
} as never,
undefined,
{
reasoningEffort: "high",
} as never,
) as {
messages?: Array<{ role?: string }>;
reasoning_effort?: unknown;
stream_options?: unknown;
store?: unknown;
tools?: Array<{ function?: { strict?: boolean } }>;
};
expect(params.messages?.[0]).toMatchObject({ role: "system" });
expect(params).not.toHaveProperty("reasoning_effort");
expect(params).not.toHaveProperty("stream_options");
expect(params).not.toHaveProperty("store");
expect(params.tools?.[0]?.function).not.toHaveProperty("strict");

View File

@@ -1351,7 +1351,6 @@ function detectCompat(model: OpenAIModeModel) {
const isZai = endpointClass === "zai-native" || (isDefaultRoute && provider === "zai");
const useMaxTokens =
endpointClass === "chutes-native" || (isDefaultRoute && provider === "chutes") || isMistral;
const isGrok = endpointClass === "xai-native" || (isDefaultRoute && provider === "xai");
const isGroq = endpointClass === "groq-native" || (isDefaultRoute && provider === "groq");
const reasoningEffortMap: Record<string, string> =
isGroq && model.id === "qwen/qwen3-32b"
@@ -1366,7 +1365,7 @@ function detectCompat(model: OpenAIModeModel) {
return {
supportsStore: compatDefaults.supportsStore,
supportsDeveloperRole: compatDefaults.supportsDeveloperRole,
supportsReasoningEffort: !isGrok && !isMistral && !isZai,
supportsReasoningEffort: compatDefaults.supportsReasoningEffort,
reasoningEffortMap,
supportsUsageInStreaming: compatDefaults.supportsUsageInStreaming,
maxTokensField: useMaxTokens ? "max_tokens" : "max_completion_tokens",