diff --git a/packages/types/src/providers/deepseek.ts b/packages/types/src/providers/deepseek.ts index 9387d6a4ae..d2bcd84607 100644 --- a/packages/types/src/providers/deepseek.ts +++ b/packages/types/src/providers/deepseek.ts @@ -14,7 +14,7 @@ export const deepSeekModels = { contextWindow: 1_000_000, supportsImages: true, supportsPromptCache: true, - supportsReasoningEffort: ["disable", "low", "high", "max"], // Updated 2026-08-01 + supportsReasoningEffort: ["disable", "low", "high", "max"], // Updated 2026-08-13 preserveReasoning: true, reasoningEffort: "high", inputPrice: 0, // the inputs are priced as cache read/write, so `inputPrice` should be 0 @@ -29,7 +29,7 @@ export const deepSeekModels = { contextWindow: 1_000_000, supportsImages: true, supportsPromptCache: true, - supportsReasoningEffort: ["disable", "high", "max"], // Updated 2026-08-01 + supportsReasoningEffort: ["disable", "low", "high", "max"], // Updated 2026-08-13 preserveReasoning: true, reasoningEffort: "high", inputPrice: 0, // the inputs are priced as cache read/write, so `inputPrice` should be 0 diff --git a/src/api/providers/__tests__/deepseek.spec.ts b/src/api/providers/__tests__/deepseek.spec.ts index 4f3cccdc08..94bed4fc6f 100644 --- a/src/api/providers/__tests__/deepseek.spec.ts +++ b/src/api/providers/__tests__/deepseek.spec.ts @@ -617,6 +617,7 @@ describe("DeepSeekHandler", () => { describe("normalizeDeepSeekReasoningEffort", () => { // https://api-docs.deepseek.com/guides/thinking_mode/ + // updated on 2026-08-13 it("should map acceptable reasoning efforts the same way as stated by the official documentation", async () => { const mappings: { modelId: DeepSeekModelId @@ -633,6 +634,11 @@ describe("DeepSeekHandler", () => { rawReasoningEffort: "low", mappedReasoningEffort: "low", }, + { + modelId: "deepseek-v4-flash", + rawReasoningEffort: "medium", + mappedReasoningEffort: "high", + }, { modelId: "deepseek-v4-flash", rawReasoningEffort: "high", @@ -656,6 +662,11 @@ describe("DeepSeekHandler", () => { { modelId: "deepseek-v4-pro", rawReasoningEffort: "low", + mappedReasoningEffort: "low", + }, + { + modelId: "deepseek-v4-pro", + rawReasoningEffort: "medium", mappedReasoningEffort: "high", }, { @@ -666,7 +677,7 @@ describe("DeepSeekHandler", () => { { modelId: "deepseek-v4-pro", rawReasoningEffort: "xhigh", - mappedReasoningEffort: "max", + mappedReasoningEffort: "high", }, { modelId: "deepseek-v4-pro", diff --git a/src/api/providers/deepseek.ts b/src/api/providers/deepseek.ts index 2e85c016b0..12d4afaae2 100644 --- a/src/api/providers/deepseek.ts +++ b/src/api/providers/deepseek.ts @@ -46,38 +46,22 @@ export const normalizeDeepSeekReasoningEffort = ( modelId: DeepSeekModelId, reasoningEffort?: string, ): "low" | "high" | "max" | undefined => { + // still check the modelId so non-supported models won't produce reasoning efforts switch (modelId) { case "deepseek-v4-flash": + case "deepseek-v4-pro": switch (reasoningEffort) { case "low": return "low" + case "medium": case "high": - return "high" - case "xhigh": return "high" case "max": return "max" } - break - - case "deepseek-v4-pro": - switch (reasoningEffort) { - case "low": - return "high" - - case "high": - return "high" - - case "xhigh": - return "max" - - case "max": - return "max" - } - break } return undefined