[Cherry-Pick][BugFix] fix tool call parser(#7369)#7418
Merged
Jiang-Jia-Jun merged 1 commit intoPaddlePaddle:release/2.5from Apr 16, 2026
Merged
Conversation
5 tasks
|
Thanks for your contribution! |
* fix tool call parser * add unit test * fix unit test * add unit test
ccde78b to
3cc430e
Compare
PaddlePaddle-bot
left a comment
There was a problem hiding this comment.
🤖 AI Code Review | 2026-04-15
📋 Review 摘要
PR 概述:修复 ErnieX1ToolParser 中的 3 个 bug:tools_called 错误判断、空字典 {} 误判、流式输出结束处理过于严格
变更范围:fastdeploy/entrypoints/openai/tool_parsers/ernie_x1_tool_parser.py
影响面 Tag:[APIServer]
问题
| 级别 | 文件 | 概述 |
|---|---|---|
| 无 | - | 未发现阻塞性问题 |
总体评价
这是一个高质量的 bug 修复 PR。变更正确地修复了以下问题:
tools_called判断修复(Line 113):异常情况下tool_calls为空列表时,正确返回False- 空字典处理修复(Lines 184, 252, 256, 260, 304):将
if diff:/if not cur_arguments改为显式is None检查,避免{}被误判 - 流式结束处理修复(Lines 185-190):将
'"}'改为'}',支持数字/布尔值结尾的参数 - 参数处理增强(Lines 274-281):新增处理正则过度捕获的情况
测试用例新增充分,覆盖了空参数、数字结尾、布尔值结尾、嵌套对象等边界场景。Cherry-Pick 到 release/2.5 分支合理。
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## release/2.5 #7418 +/- ##
==============================================
Coverage ? 69.62%
==============================================
Files ? 390
Lines ? 54387
Branches ? 8579
==============================================
Hits ? 37868
Misses ? 13805
Partials ? 2714
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
12e4fff
into
PaddlePaddle:release/2.5
34 of 38 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Cherry-pick of #7369 (authored by @luukunn) to
release/2.5.devPR:#7369
Motivation
extract_tool_calls中tools_called在tool_calls为空时仍返回True的问题{}被误判为无参数的问题'"}'检查过于严格导致数字/布尔值结尾的参数无法正确流式传输的问题Modifications
tools_called=True改为tools_called=len(tool_calls) > 0if diff:改为if diff is not None:,正确处理空字典if '"}' not in delta_text:改为if "}" not in delta_text:,并使用rindex("}")获取正确位置if not cur_arguments改为if cur_arguments is None,避免空字典误判Usage or Command
Accuracy Tests
Checklist
[FDConfig],[APIServer],[Engine],[Scheduler],[PD Disaggregation],[Executor],[Graph Optimization],[Speculative Decoding],[RL],[Models],[Quantization],[Loader],[OP],[KVCache],[DataProcessor],[BugFix],[Docs],[CI],[Optimization],[Feature],[Benchmark],[Others],[XPU],[HPU],[GCU],[DCU],[Iluvatar],[Metax]]pre-commitbefore commit.releasebranch, make sure the PR has been submitted to thedevelopbranch, then cherry-pick it to thereleasebranch with the[Cherry-Pick]PR tag.