Compare commits

...
3 Commits
2 changed files with 25 additions and 1 deletions
+9 -1
View File
@@ -1069,6 +1069,9 @@ export function variants(model: Provider.Model): Record<string, Record<string, a
type: "enabled",
maxReasoningEffort: effort,
},
...(model.api.id.includes("openai.gpt-5")
? { additionalModelRequestFields: { reasoning: { summary: "auto" } } }
: {}),
},
]),
)
@@ -1743,7 +1746,12 @@ function reasoningEffort(model: Provider.Model, effort: string) {
},
}
if (model.api.id.includes("anthropic")) return
return { reasoningConfig: { type: "enabled", maxReasoningEffort: effort } }
return {
reasoningConfig: { type: "enabled", maxReasoningEffort: effort },
...(model.api.id.includes("openai.gpt-5")
? { additionalModelRequestFields: { reasoning: { summary: "auto" } } }
: {}),
}
case "@ai-sdk/gateway":
if (model.id.includes("anthropic")) return { thinking: { type: "adaptive", display: "summarized" }, effort }
if (model.id.includes("google")) return { thinkingConfig: { includeThoughts: true, thinkingLevel: effort } }
@@ -3515,6 +3515,14 @@ describe("ProviderTransform.reasoningVariants", () => {
["ai-gateway-provider", { reasoningEffort: "high" }],
["merge-gateway-ai-sdk-provider", { reasoningEffort: "high" }],
["@ai-sdk/amazon-bedrock", { reasoningConfig: { type: "enabled", maxReasoningEffort: "high" } }],
[
"@ai-sdk/amazon-bedrock",
{
reasoningConfig: { type: "enabled", maxReasoningEffort: "high" },
additionalModelRequestFields: { reasoning: { summary: "auto" } },
},
"global.openai.gpt-5.6-luna",
],
])("converts effort for %s", (npm, expected, ...args) => {
const id = args[0] as string | undefined
expect(ProviderTransform.reasoningVariants(model([{ type: "effort", values: ["high"] }]), target(npm, id))).toEqual(
@@ -3522,6 +3530,14 @@ describe("ProviderTransform.reasoningVariants", () => {
)
})
test("requests summaries for Bedrock GPT-5 fallback variants", () => {
const variants = ProviderTransform.variants(target("@ai-sdk/amazon-bedrock", "global.openai.gpt-5.6-luna"))
expect(variants.high).toEqual({
reasoningConfig: { type: "enabled", maxReasoningEffort: "high" },
additionalModelRequestFields: { reasoning: { summary: "auto" } },
})
})
test("combines effort with extended thinking for Claude Opus 4.5", () => {
expect(
ProviderTransform.reasoningVariants(