fix(openai-compatible): support openrouter reasoning field #6361
+54
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
OpenRouter's reasoning field is like the below data chunk example:
"delta":{"role":"assistant","content":"...","reasoning":"..."}
People can only use third party provider's library to get the reasoning field, https://ai-sdk.dev/providers/community-providers/openrouter#openrouter, but not
@ai-sdk/openai-compatible
. I'm not sure if we want to support it in@ai-sdk/openai-compatible
.Summary
To support OpenRouter's reasoning field in the
@ai-sdk/openai-compatible
Verification
Run in my own project with OpenRouter provider provided to
createOpenAICompatible
Tasks
pnpm changeset
in the project root)pnpm prettier-fix
in the project root)Future Work
Should we expose the raw data chunk to middleware to better support those edge cases? Right now, if the vercel/ai doesn't know the field, that field gets silently dropped and no one can retrieve it from a middleware.
Related Issues
#6226