diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 9d98815cdad5..00d8873b8a23 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -551,6 +551,8 @@ export function topP(model: Provider.Model) { if (["minimax-m2", "kimi-k2.5", "kimi-k2p5", "kimi-k2-5"].some((s) => id.includes(s))) { return 0.95 } + // https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash-0731 + if (id.includes("deepseek-v4-flash")) return 0.95 return undefined } diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 9897c543fb81..f306d97d9902 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -3272,6 +3272,18 @@ describe("ProviderTransform sampling defaults - Gemini", () => { }) }) +describe("ProviderTransform sampling defaults - DeepSeek", () => { + test("defaults deepseek-v4-flash top_p to 0.95", () => { + const model = { + id: "deepseek/deepseek-v4-flash", + api: { id: "deepseek-v4-flash" }, + } as any + expect(ProviderTransform.temperature(model)).toBeUndefined() + expect(ProviderTransform.topP(model)).toBe(0.95) + expect(ProviderTransform.topK(model)).toBeUndefined() + }) +}) + describe("ProviderTransform.reasoningVariants", () => { const model = (reasoning_options: ModelsDev.Model["reasoning_options"]) => ({ reasoning_options }) as ModelsDev.Model const target = (npm: string, id = "test-model") =>