Skip to content

Commit f64adb4

Browse files
committed
[Model] Add ToolParser for Hunyuan A13B.
- add stream and non stream support - reason parser use regex package. - reason parser: add missing function. Signed-off-by: Asher Zhang <asherszhang@tencent.com>
1 parent d0dc4cf commit f64adb4

File tree

4 files changed

+473
-4
lines changed

4 files changed

+473
-4
lines changed

vllm/entrypoints/openai/serving_chat.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -613,8 +613,13 @@ async def chat_completion_stream_generator(
613613
previous_text = previous_texts[i]
614614
previous_token_ids = all_previous_token_ids[i]
615615
current_text = previous_text + delta_text
616-
current_token_ids = previous_token_ids + list(
617-
output.token_ids)
616+
617+
# avoid the None + list error.
618+
if previous_token_ids:
619+
current_token_ids = previous_token_ids + list(
620+
output.token_ids)
621+
else:
622+
current_token_ids = list(output.token_ids)
618623

619624
# handle streaming deltas for tools with named tool_choice
620625
if tool_choice_function_name:
@@ -1077,9 +1082,17 @@ async def chat_completion_full_generator(
10771082
else:
10781083
# FOR NOW make it a chat message; we will have to detect
10791084
# the type to make it later.
1085+
ret_content = content
1086+
1087+
# try to use content return from tool parser first,
1088+
# tool parser may do some modify for the content.
1089+
if (tool_call_info.content
1090+
and len(tool_call_info.content) > 0):
1091+
ret_content = tool_call_info.content
1092+
10801093
message = ChatMessage(role=role,
10811094
reasoning_content=reasoning_content,
1082-
content=content)
1095+
content=ret_content)
10831096

10841097
# undetermined case that is still important to handle
10851098
else:

vllm/entrypoints/openai/tool_parsers/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .granite_20b_fc_tool_parser import Granite20bFCToolParser
77
from .granite_tool_parser import GraniteToolParser
88
from .hermes_tool_parser import Hermes2ProToolParser
9+
from .hunyuan_a13b_tool_parser import HunyuanA13BToolParser
910
from .internlm2_tool_parser import Internlm2ToolParser
1011
from .jamba_tool_parser import JambaToolParser
1112
from .kimi_k2_tool_parser import KimiK2ToolParser
@@ -23,5 +24,5 @@
2324
"Internlm2ToolParser", "Llama3JsonToolParser", "JambaToolParser",
2425
"Llama4PythonicToolParser", "PythonicToolParser", "Phi4MiniJsonToolParser",
2526
"DeepSeekV3ToolParser", "xLAMToolParser", "MinimaxToolParser",
26-
"KimiK2ToolParser"
27+
"KimiK2ToolParser", "HunyuanA13BToolParser"
2728
]

0 commit comments

Comments
 (0)