Commit de764e6
committed
frontend: report reasoning_tokens in chat completion usage
The SGLang chat processor (--dyn-chat-processor sglang) split reasoning_content
per request but never populated usage.completion_tokens_details.reasoning_tokens.
The engine-side counter is gated on require_reasoning, which the bare-Engine path
does not set, so meta_info["reasoning_tokens"] is always 0; count in the frontend
instead, where the per-request ReasoningParser already runs.
SglangStreamingPostProcessor accumulates the reasoning-text deltas and
reasoning_token_count() re-encodes the span (the streaming detector buffers, so
per-chunk token_ids cannot be tallied). _generate_and_stream injects
completion_tokens_details when a reasoning parser is active for the request;
sibling detail fields are 0 (not null) so strict downstream usage parsers do not
drop the object.
Signed-off-by: Gavin.Zhu <gavin.z@gmicloud.ai>1 parent ac05d48 commit de764e6
3 files changed
Lines changed: 108 additions & 0 deletions
File tree
- components/src/dynamo/frontend
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
905 | 905 | | |
906 | 906 | | |
907 | 907 | | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
908 | 914 | | |
909 | 915 | | |
910 | 916 | | |
| |||
959 | 965 | | |
960 | 966 | | |
961 | 967 | | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
962 | 989 | | |
963 | 990 | | |
964 | 991 | | |
| |||
1001 | 1028 | | |
1002 | 1029 | | |
1003 | 1030 | | |
| 1031 | + | |
| 1032 | + | |
1004 | 1033 | | |
1005 | 1034 | | |
1006 | 1035 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
605 | 623 | | |
606 | 624 | | |
607 | 625 | | |
| |||
Lines changed: 61 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2344 | 2344 | | |
2345 | 2345 | | |
2346 | 2346 | | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
| 2350 | + | |
| 2351 | + | |
| 2352 | + | |
| 2353 | + | |
| 2354 | + | |
| 2355 | + | |
| 2356 | + | |
| 2357 | + | |
| 2358 | + | |
| 2359 | + | |
| 2360 | + | |
| 2361 | + | |
| 2362 | + | |
| 2363 | + | |
| 2364 | + | |
| 2365 | + | |
| 2366 | + | |
| 2367 | + | |
| 2368 | + | |
| 2369 | + | |
| 2370 | + | |
| 2371 | + | |
| 2372 | + | |
| 2373 | + | |
| 2374 | + | |
| 2375 | + | |
| 2376 | + | |
| 2377 | + | |
| 2378 | + | |
| 2379 | + | |
| 2380 | + | |
| 2381 | + | |
| 2382 | + | |
| 2383 | + | |
| 2384 | + | |
| 2385 | + | |
| 2386 | + | |
| 2387 | + | |
| 2388 | + | |
| 2389 | + | |
| 2390 | + | |
| 2391 | + | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
| 2398 | + | |
| 2399 | + | |
| 2400 | + | |
| 2401 | + | |
| 2402 | + | |
| 2403 | + | |
| 2404 | + | |
| 2405 | + | |
| 2406 | + | |
| 2407 | + | |
2347 | 2408 | | |
2348 | 2409 | | |
2349 | 2410 | | |
| |||
0 commit comments