Skip to content

Commit 8f7a8d6

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 35514b6 commit 8f7a8d6

File tree

4 files changed

+474
-5
lines changed

4 files changed

+474
-5
lines changed

vllm/entrypoints/openai/serving_chat.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -630,8 +630,13 @@ async def chat_completion_stream_generator(
630630
previous_text = previous_texts[i]
631631
previous_token_ids = all_previous_token_ids[i]
632632
current_text = previous_text + delta_text
633-
current_token_ids = previous_token_ids + list(
634-
output.token_ids)
633+
634+
# avoid the None + list error.
635+
if previous_token_ids:
636+
current_token_ids = previous_token_ids + list(
637+
output.token_ids)
638+
else:
639+
current_token_ids = list(output.token_ids)
635640

636641
# handle streaming deltas for tools with named tool_choice
637642
if tool_choice_function_name:
@@ -1094,9 +1099,17 @@ async def chat_completion_full_generator(
10941099
else:
10951100
# FOR NOW make it a chat message; we will have to detect
10961101
# the type to make it later.
1102+
ret_content = content
1103+
1104+
# try to use content return from tool parser first,
1105+
# tool parser may do some modify for the content.
1106+
if (tool_call_info.content
1107+
and len(tool_call_info.content) > 0):
1108+
ret_content = tool_call_info.content
1109+
10971110
message = ChatMessage(role=role,
10981111
reasoning_content=reasoning_content,
1099-
content=content)
1112+
content=ret_content)
11001113

11011114
# undetermined case that is still important to handle
11021115
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)