fix(count_tokens): complete the selected count settings prerequisites

Preserve the prompt normalization required by #46777 from #46839 and classify its token_count_tokenizer key using the upstream schema definition.
This commit is contained in:
mateo-berri 2026-10-19 14:07:15 -07:00
parent 828ddf0c37
commit 2ddc8946d0
2 changed files with 8 additions and 1 deletions

View file

@ -259,6 +259,11 @@ def cost_schema(key: str) -> JsonSchema:
def string_key_schemas(modes: tuple) -> dict[str, JsonSchema]:
return {
"token_count_tokenizer": {
"type": "string",
"description": "Tokenizer litellm counts this model's requests with when the provider cannot count them.",
"enum": ["kimi_k3"],
},
"litellm_provider": {
"type": "string",
"description": "LiteLLM provider slug; one of https://docs.litellm.ai/docs/providers.",

View file

@ -14153,8 +14153,10 @@ async def count_request_tokens(
model_info.get("custom_tokenizer", None),
)
system_message: Final = _system_message(system)
prompt_turn: Final = prompt_only and not (system_message is None and not tools)
typed_messages: Final = cast( # cast-ok: request messages are raw chat-shaped dicts that token_counter normalizes
Sequence[AllMessageValues] | None, messages
Sequence[AllMessageValues] | None,
[{"role": "user", "content": prompt}] if prompt_turn else (None if prompt_only else messages),
)
counted_messages: Final = (
typed_messages if typed_messages is None or system_message is None else (system_message, *typed_messages)