| 1 | # SPDX-License-Identifier: Apache-2.0 |
| 2 | # SPDX-FileCopyrightText: Copyright contributors to the vLLM project |
| 3 | |
| 4 | from vllm.entrypoints.openai.chat_completion.protocol import ( |
| 5 | ChatCompletionRequest, |
| 6 | ) |
| 7 | from vllm.entrypoints.openai.responses.protocol import ResponsesRequest |
| 8 | from vllm.parser.engine.registered_adapters import KimiK2ParserToolAdapter |
| 9 | |
| 10 | |
| 11 | class KimiK2ToolParser(KimiK2ParserToolAdapter): # type: ignore[valid-type, misc] |
| 12 | structural_tag_model = "kimi" |
| 13 | |
| 14 | def adjust_request( |
| 15 | self, |
| 16 | request: ChatCompletionRequest | ResponsesRequest, |
| 17 | ) -> ChatCompletionRequest | ResponsesRequest: |
| 18 | if request.tools and request.tool_choice != "none": |
| 19 | request.skip_special_tokens = False |
| 20 | return request |