




















@@ -2050,6 +2050,68 @@ describe("openai transport stream", () => {
20502050expect(params.reasoning_effort).toBe("high");
20512051});
205220522053+it("omits reasoning_effort for gpt-5.4-mini Chat Completions tool payloads", () => {
2054+const params = buildOpenAICompletionsParams(
2055+{
2056+id: "gpt-5.4-mini",
2057+name: "GPT-5.4 mini",
2058+api: "openai-completions",
2059+provider: "openai",
2060+baseUrl: "https://api.openai.com/v1",
2061+reasoning: true,
2062+input: ["text"],
2063+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
2064+contextWindow: 400000,
2065+maxTokens: 128000,
2066+} satisfies Model<"openai-completions">,
2067+{
2068+systemPrompt: "system",
2069+messages: [],
2070+tools: [
2071+{
2072+name: "lookup_weather",
2073+description: "Get forecast",
2074+parameters: { type: "object", properties: {}, additionalProperties: false },
2075+},
2076+],
2077+} as never,
2078+{
2079+reasoning: "medium",
2080+} as never,
2081+) as { reasoning_effort?: unknown; tools?: unknown };
2082+2083+expect(params.tools).toBeDefined();
2084+expect(params).not.toHaveProperty("reasoning_effort");
2085+});
2086+2087+it("keeps reasoning_effort for gpt-5.4-mini Chat Completions payloads without tools", () => {
2088+const params = buildOpenAICompletionsParams(
2089+{
2090+id: "gpt-5.4-mini",
2091+name: "GPT-5.4 mini",
2092+api: "openai-completions",
2093+provider: "openai",
2094+baseUrl: "https://api.openai.com/v1",
2095+reasoning: true,
2096+input: ["text"],
2097+cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
2098+contextWindow: 400000,
2099+maxTokens: 128000,
2100+} satisfies Model<"openai-completions">,
2101+{
2102+systemPrompt: "system",
2103+messages: [],
2104+tools: [],
2105+} as never,
2106+{
2107+reasoning: "medium",
2108+} as never,
2109+) as { reasoning_effort?: unknown; tools?: unknown };
2110+2111+expect(params.tools).toEqual([]);
2112+expect(params.reasoning_effort).toBe("medium");
2113+});
2114+20532115it("uses provider-native reasoning effort values declared by model compat", () => {
20542116const baseModel = {
20552117id: "qwen/qwen3-32b",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。