longcat_tool_parser.py 782 Bytes
Newer Older
1
2
3
4
5
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project

import regex as re

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
13
    def __init__(self, tokenizer: TokenizerLike, tools: list[Tool] | None = None):
        super().__init__(tokenizer, tools)
14
15
16
17
18

        self.tool_call_start_token: str = "<longcat_tool_call>"
        self.tool_call_end_token: str = "</longcat_tool_call>"

        self.tool_call_regex = re.compile(
19
20
            r"<longcat_tool_call>(.*?)</longcat_tool_call>"
            r"|<longcat_tool_call>(.*)",
21
22
            re.DOTALL,
        )