Files
vLLM/vllm/renderers/kimi_audio.py
T
2026-03-10 21:24:48 -07:00

50 lines
1.8 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
from typing import Any, cast
from vllm.config import VllmConfig
from vllm.tokenizers.kimi_audio import KimiAudioTokenizer
from vllm.tokenizers.registry import get_tokenizer
from .hf import HfRenderer, HfTokenizer
class KimiAudioRenderer(HfRenderer):
"""Renderer for Kimi-Audio models.
This renderer uses HfRenderer internally with a custom TikToken tokenizer.
"""
@classmethod
def from_config( # type: ignore[override]
cls,
config: VllmConfig,
tokenizer_kwargs: dict[str, Any],
) -> "HfRenderer":
"""Create an HfRenderer instance for Kimi-Audio models."""
model_config = config.model_config
if model_config.skip_tokenizer_init:
tokenizer = None
else:
# Extract tokenizer_name from kwargs (already processed by
# tokenizer_args_from_config for ModelScope/GGUF/etc)
tokenizer_name = tokenizer_kwargs.pop(
"tokenizer_name", model_config.tokenizer
)
# Remove tokenizer_cls from kwargs to avoid duplicate argument
tokenizer_kwargs = {
k: v for k, v in tokenizer_kwargs.items() if k != "tokenizer_cls"
}
# Use get_tokenizer directly instead of cached_get_tokenizer
# (KimiAudioTokenizer doesn't work with get_cached_tokenizer)
tokenizer = cast(
HfTokenizer,
get_tokenizer(
tokenizer_name,
tokenizer_cls=KimiAudioTokenizer, # type: ignore[arg-type]
**tokenizer_kwargs,
),
)
return HfRenderer(config, tokenizer)