main
py 22 lines 782 Bytes
Raw
1 # SPDX-License-Identifier: Apache-2.0
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 import regex as re
5
6 from vllm.tokenizers import TokenizerLike
7 from vllm.tool_parsers.abstract_tool_parser import Tool
8 from vllm.tool_parsers.hermes_tool_parser import Hermes2ProToolParser
9
10
11 class LongcatFlashToolParser(Hermes2ProToolParser):
12 def __init__(self, tokenizer: TokenizerLike, tools: list[Tool] | None = None):
13 super().__init__(tokenizer, tools)
14
15 self.tool_call_start_token: str = "<longcat_tool_call>"
16 self.tool_call_end_token: str = "</longcat_tool_call>"
17
18 self.tool_call_regex = re.compile(
19 r"<longcat_tool_call>(.*?)</longcat_tool_call>"
20 r"|<longcat_tool_call>(.*)",
21 re.DOTALL,
22 )