Skip to content

Forward provider options in the DeepSeek handlers. Fixes #1031 - #1032

Open
leobeal wants to merge 1 commit into
prism-php:mainfrom
leobeal:main
Open

Forward provider options in the DeepSeek handlers. Fixes #1031#1032
leobeal wants to merge 1 commit into
prism-php:mainfrom
leobeal:main

Conversation

@leobeal

@leobeal leobeal commented Jul 25, 2026

Copy link
Copy Markdown

Description

DeepSeek thinking mode option and others were simply being discarded. This PR adds support for them.
FIxes #1031

DeepSeek accepts per-request knobs the handlers never passed on, so
withProviderOptions() was silently dropped for this provider — the only
way to reach them was to bypass Prism and call the API directly.

Notably `thinking: {type: 'disabled'}`, which skips reasoning on models
that would otherwise think before answering: measured 5.4s to 1.1s on
deepseek-v4-flash for a one-line generation, with no reasoning tokens
billed. Also reasoning_effort (low|medium|high|max|xhigh), the penalties
and stop.

Wired through Text, Stream and Structured, via Arr::whereNotNull so an
unset option stays out of the body. Structured keeps setting its own
response_format rather than letting an option fight it.
@wishborn

Copy link
Copy Markdown

@leobeal — this is now released in the maintained fork (particle-academy/prism v0.112.0), which is a drop-in for prism-php/prism.

Absorbed with one change: rather than the five-key allowlist, all three DeepSeek handlers now merge providerOptions() generically, so reasoning_effort, stop, logprobs and anything DeepSeek adds later work too. Options merge first, so nothing can clobber model/messages/stream. Your two test cases are in, plus a clobber guard.

Fixes the thinking case from #1031. Thanks for the fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Thinking mode on DeepSeek can't be disabled.

2 participants