Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
b03b1b97
Unverified
Commit
b03b1b97
authored
Sep 26, 2025
by
Xu Wenqing
Committed by
GitHub
Sep 26, 2025
Browse files
Support LongCat-Flash-Chat tool call (#24083)
Signed-off-by:
许文卿
<
xwq391974@alibaba-inc.com
>
parent
dfb9af20
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
50 additions
and
0 deletions
+50
-0
docs/features/tool_calling.md
docs/features/tool_calling.md
+9
-0
vllm/entrypoints/openai/tool_parsers/__init__.py
vllm/entrypoints/openai/tool_parsers/__init__.py
+2
-0
vllm/entrypoints/openai/tool_parsers/longcat_tool_parser.py
vllm/entrypoints/openai/tool_parsers/longcat_tool_parser.py
+39
-0
No files found.
docs/features/tool_calling.md
View file @
b03b1b97
...
...
@@ -310,6 +310,15 @@ Flags:
*
For non-reasoning:
`--tool-call-parser hunyuan_a13b`
*
For reasoning:
`--tool-call-parser hunyuan_a13b --reasoning-parser hunyuan_a13b --enable_reasoning`
### LongCat-Flash-Chat Models (`longcat`)
Supported models:
*
`meituan-longcat/LongCat-Flash-Chat`
*
`meituan-longcat/LongCat-Flash-Chat-FP8`
Flags:
`--tool-call-parser longcat`
### GLM-4.5 Models (`glm45`)
Supported models:
...
...
vllm/entrypoints/openai/tool_parsers/__init__.py
View file @
b03b1b97
...
...
@@ -14,6 +14,7 @@ from .jamba_tool_parser import JambaToolParser
from
.kimi_k2_tool_parser
import
KimiK2ToolParser
from
.llama4_pythonic_tool_parser
import
Llama4PythonicToolParser
from
.llama_tool_parser
import
Llama3JsonToolParser
from
.longcat_tool_parser
import
LongcatFlashToolParser
from
.minimax_tool_parser
import
MinimaxToolParser
from
.mistral_tool_parser
import
MistralToolParser
from
.openai_tool_parser
import
OpenAIToolParser
...
...
@@ -36,6 +37,7 @@ __all__ = [
"Llama3JsonToolParser"
,
"JambaToolParser"
,
"Llama4PythonicToolParser"
,
"LongcatFlashToolParser"
,
"PythonicToolParser"
,
"Phi4MiniJsonToolParser"
,
"DeepSeekV3ToolParser"
,
...
...
vllm/entrypoints/openai/tool_parsers/longcat_tool_parser.py
0 → 100644
View file @
b03b1b97
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
import
regex
as
re
from
vllm.entrypoints.openai.tool_parsers.abstract_tool_parser
import
(
ToolParserManager
)
from
vllm.entrypoints.openai.tool_parsers.hermes_tool_parser
import
(
Hermes2ProToolParser
)
from
vllm.transformers_utils.tokenizer
import
AnyTokenizer
@
ToolParserManager
.
register_module
(
"longcat"
)
class
LongcatFlashToolParser
(
Hermes2ProToolParser
):
def
__init__
(
self
,
tokenizer
:
AnyTokenizer
):
super
().
__init__
(
tokenizer
)
self
.
tool_call_start_token
:
str
=
"<longcat_tool_call>"
self
.
tool_call_end_token
:
str
=
"</longcat_tool_call>"
self
.
tool_call_regex
=
re
.
compile
(
r
"<longcat_tool_call>(.*?)</longcat_tool_call>|<longcat_tool_call>(.*)"
,
re
.
DOTALL
)
self
.
tool_call_start_token_ids
=
self
.
model_tokenizer
.
encode
(
self
.
tool_call_start_token
,
add_special_tokens
=
False
)
self
.
tool_call_end_token_ids
=
self
.
model_tokenizer
.
encode
(
self
.
tool_call_end_token
,
add_special_tokens
=
False
)
self
.
tool_call_start_token_array
=
[
self
.
model_tokenizer
.
decode
([
token_id
])
for
token_id
in
self
.
tool_call_start_token_ids
]
self
.
tool_call_end_token_array
=
[
self
.
model_tokenizer
.
decode
([
token_id
])
for
token_id
in
self
.
tool_call_end_token_ids
]
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment