-
Notifications
You must be signed in to change notification settings - Fork 609
feat: add finish reason = tool_calls for stream=False and phi-4 detect token start fix #3087
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds finish_reason override logic in DeltaChoice -> ChatChoice conversion to set ToolCalls when non-empty tool_calls are present; otherwise preserves the original finish_reason. Introduces comprehensive unit tests covering override and non-override scenarios, tool_call parsing, and content consistency. No public API changes. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Caller
participant Aggregator as Aggregator (DeltaChoice -> ChatChoice)
participant Delta as DeltaChoice
participant Chat as ChatChoice
Caller->>Aggregator: convert(Delta)
Aggregator->>Delta: inspect tool_calls and finish_reason
alt tool_calls present and non-empty
note over Aggregator: Override finish_reason = ToolCalls
else tool_calls absent or empty
note over Aggregator: Preserve delta.finish_reason
end
Aggregator->>Chat: build ChatChoice (message, tool_calls, finish_reason)
Aggregator-->>Caller: ChatChoice
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
Pre-merge checks❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal). Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need to fix clippy checks in failed github actions
63bed93
to
37e2c79
Compare
0bd475a
to
926cab8
Compare
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
Signed-off-by: Elyas Mehtabuddin <[email protected]>
926cab8
to
d6bae3e
Compare
Overview:
For stream=False, when there is a tool call the finish reason is currently "stop" when it should be "tool_calls"
Summary by CodeRabbit
New Features
Bug Fixes
Tests