diff --git a/models/alibaba/kimi-k3.yaml b/models/alibaba/kimi-k3.yaml new file mode 100644 index 00000000..17bfb175 --- /dev/null +++ b/models/alibaba/kimi-k3.yaml @@ -0,0 +1,55 @@ +# yaml-language-server: $schema=https://modelparams.dev/api/v1/schema.json +provider: alibaba +authType: api_key +apiSurface: openai-chat-completions +model: kimi-k3 +params: + - path: max_completion_tokens + type: integer + label: Max tokens + description: Maximum number of tokens to generate, including both reasoning and the final answer. + range: + min: 1 + group: generation_length + - path: temperature + type: number + label: Temperature + description: Controls randomness. Lower values make outputs more focused; higher values make them more varied. + range: + min: 0 + max: 1.9 + step: 0.1 + group: sampling + - path: top_p + type: number + label: Top P + description: Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability. + range: + min: 0 + max: 1 + step: 0.01 + group: sampling + - path: extra_body.top_k + type: integer + label: Top K + description: Limits generation to the selected number of highest-probability tokens. Values above 100 disable top-k sampling. + default: 20 + range: + min: 0 + group: sampling + - path: extra_body.enable_thinking + type: boolean + label: Enable thinking + description: Toggles the model's hybrid thinking mode, sent as a provider-specific extra body field on OpenAI-compatible clients. + default: true + group: reasoning + - path: extra_body.thinking_budget + type: integer + label: Thinking budget + description: Maximum number of tokens the model may spend on reasoning before it starts the final answer; defaults to the model's maximum reasoning length. + range: + min: 1 + group: reasoning + applicability: + only: + extra_body.enable_thinking: true diff --git a/packages/modelparams-python/src/modelparams/_generated/catalog.json b/packages/modelparams-python/src/modelparams/_generated/catalog.json index 28505dea..fa67e5a9 100644 --- a/packages/modelparams-python/src/modelparams/_generated/catalog.json +++ b/packages/modelparams-python/src/modelparams/_generated/catalog.json @@ -607,6 +607,82 @@ } ] }, + { + "provider": "alibaba", + "authType": "api_key", + "apiSurface": "openai-chat-completions", + "model": "kimi-k3", + "params": [ + { + "path": "max_completion_tokens", + "label": "Max tokens", + "description": "Maximum number of tokens to generate, including both reasoning and the final answer.", + "group": "generation_length", + "type": "integer", + "range": { + "min": 1 + } + }, + { + "path": "temperature", + "label": "Temperature", + "description": "Controls randomness. Lower values make outputs more focused; higher values make them more varied.", + "group": "sampling", + "type": "number", + "range": { + "min": 0, + "max": 1.9, + "step": 0.1 + } + }, + { + "path": "top_p", + "label": "Top P", + "description": "Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability.", + "group": "sampling", + "type": "number", + "range": { + "min": 0, + "max": 1, + "step": 0.01 + } + }, + { + "path": "extra_body.top_k", + "label": "Top K", + "description": "Limits generation to the selected number of highest-probability tokens. Values above 100 disable top-k sampling.", + "group": "sampling", + "type": "integer", + "default": 20, + "range": { + "min": 0 + } + }, + { + "path": "extra_body.enable_thinking", + "label": "Enable thinking", + "description": "Toggles the model's hybrid thinking mode, sent as a provider-specific extra body field on OpenAI-compatible clients.", + "group": "reasoning", + "type": "boolean", + "default": true + }, + { + "path": "extra_body.thinking_budget", + "label": "Thinking budget", + "description": "Maximum number of tokens the model may spend on reasoning before it starts the final answer; defaults to the model's maximum reasoning length.", + "group": "reasoning", + "applicability": { + "only": { + "extra_body.enable_thinking": true + } + }, + "type": "integer", + "range": { + "min": 1 + } + } + ] + }, { "provider": "alibaba", "authType": "api_key", diff --git a/packages/modelparams-python/src/modelparams/_generated/model_ids.py b/packages/modelparams-python/src/modelparams/_generated/model_ids.py index 044a5425..a11650a2 100644 --- a/packages/modelparams-python/src/modelparams/_generated/model_ids.py +++ b/packages/modelparams-python/src/modelparams/_generated/model_ids.py @@ -12,6 +12,7 @@ "alibaba/glm-5.1", "alibaba/glm-5.2", "alibaba/kimi-k2.7-code", + "alibaba/kimi-k3", "alibaba/qwen-flash", "alibaba/qwen-max", "alibaba/qwen-plus", @@ -409,6 +410,7 @@ "alibaba/glm-5.1", "alibaba/glm-5.2", "alibaba/kimi-k2.7-code", + "alibaba/kimi-k3", "alibaba/qwen-flash", "alibaba/qwen-max", "alibaba/qwen-plus", diff --git a/packages/modelparams-python/src/modelparams/_generated/registry.py b/packages/modelparams-python/src/modelparams/_generated/registry.py index 7ac1a205..b42be39e 100644 --- a/packages/modelparams-python/src/modelparams/_generated/registry.py +++ b/packages/modelparams-python/src/modelparams/_generated/registry.py @@ -37,6 +37,7 @@ "alibaba/glm-5.1": alibaba.Glm_5_1Params, "alibaba/glm-5.2": alibaba.Glm_5_2Params, "alibaba/kimi-k2.7-code": alibaba.Kimi_K2_7_CodeParams, + "alibaba/kimi-k3": alibaba.Kimi_K3Params, "alibaba/qwen-flash": alibaba.Qwen_FlashParams, "alibaba/qwen-max": alibaba.Qwen_MaxParams, "alibaba/qwen-plus": alibaba.Qwen_PlusParams, diff --git a/packages/modelparams-python/src/modelparams/types/alibaba.py b/packages/modelparams-python/src/modelparams/types/alibaba.py index c44e3185..5f9cb2c0 100644 --- a/packages/modelparams-python/src/modelparams/types/alibaba.py +++ b/packages/modelparams-python/src/modelparams/types/alibaba.py @@ -122,6 +122,20 @@ ) setattr(Kimi_K2_7_CodeParams, "__pydantic_config__", _PARAMS_CONFIG) +Kimi_K3Params = TypedDict( + "Kimi_K3Params", + { + "max_completion_tokens": Annotated[int, Field(ge=1)], + "temperature": Annotated[float, Field(ge=0, le=1.9)], + "top_p": Annotated[float, Field(ge=0, le=1)], + "extra_body.top_k": Annotated[int, Field(ge=0)], + "extra_body.enable_thinking": bool, + "extra_body.thinking_budget": Annotated[int, Field(ge=1)], + }, + total=False, +) +setattr(Kimi_K3Params, "__pydantic_config__", _PARAMS_CONFIG) + Qwen_FlashParams = TypedDict( "Qwen_FlashParams", { @@ -567,6 +581,7 @@ "Glm_5_1Params", "Glm_5_2Params", "Kimi_K2_7_CodeParams", + "Kimi_K3Params", "Qwen_FlashParams", "Qwen_MaxParams", "Qwen_PlusParams", diff --git a/packages/modelparams/src/generated/data.ts b/packages/modelparams/src/generated/data.ts index 7d35579e..3e83f71e 100644 --- a/packages/modelparams/src/generated/data.ts +++ b/packages/modelparams/src/generated/data.ts @@ -612,6 +612,82 @@ const GENERATED_CATALOG = [ } ] }, + { + "provider": "alibaba", + "authType": "api_key", + "apiSurface": "openai-chat-completions", + "model": "kimi-k3", + "params": [ + { + "path": "max_completion_tokens", + "label": "Max tokens", + "description": "Maximum number of tokens to generate, including both reasoning and the final answer.", + "group": "generation_length", + "type": "integer", + "range": { + "min": 1 + } + }, + { + "path": "temperature", + "label": "Temperature", + "description": "Controls randomness. Lower values make outputs more focused; higher values make them more varied.", + "group": "sampling", + "type": "number", + "range": { + "min": 0, + "max": 1.9, + "step": 0.1 + } + }, + { + "path": "top_p", + "label": "Top P", + "description": "Controls nucleus sampling by limiting generation to tokens within the selected cumulative probability.", + "group": "sampling", + "type": "number", + "range": { + "min": 0, + "max": 1, + "step": 0.01 + } + }, + { + "path": "extra_body.top_k", + "label": "Top K", + "description": "Limits generation to the selected number of highest-probability tokens. Values above 100 disable top-k sampling.", + "group": "sampling", + "type": "integer", + "default": 20, + "range": { + "min": 0 + } + }, + { + "path": "extra_body.enable_thinking", + "label": "Enable thinking", + "description": "Toggles the model's hybrid thinking mode, sent as a provider-specific extra body field on OpenAI-compatible clients.", + "group": "reasoning", + "type": "boolean", + "default": true + }, + { + "path": "extra_body.thinking_budget", + "label": "Thinking budget", + "description": "Maximum number of tokens the model may spend on reasoning before it starts the final answer; defaults to the model's maximum reasoning length.", + "group": "reasoning", + "applicability": { + "only": { + "extra_body.enable_thinking": true + } + }, + "type": "integer", + "range": { + "min": 1 + } + } + ] + }, { "provider": "alibaba", "authType": "api_key", diff --git a/packages/modelparams/src/generated/defaults.ts b/packages/modelparams/src/generated/defaults.ts index 62905a84..ea47dfab 100644 --- a/packages/modelparams/src/generated/defaults.ts +++ b/packages/modelparams/src/generated/defaults.ts @@ -37,6 +37,10 @@ export const DEFAULTS = { "extra_body.top_k": 20, "extra_body.enable_thinking": true, }, + "alibaba/kimi-k3": { + "extra_body.top_k": 20, + "extra_body.enable_thinking": true, + }, "alibaba/qwen-flash": { "extra_body.top_k": 20, "extra_body.chat_template_kwargs.enable_thinking": true, diff --git a/packages/modelparams/src/generated/model-ids.ts b/packages/modelparams/src/generated/model-ids.ts index c127c12d..7050d477 100644 --- a/packages/modelparams/src/generated/model-ids.ts +++ b/packages/modelparams/src/generated/model-ids.ts @@ -10,6 +10,7 @@ export const MODEL_IDS = [ "alibaba/glm-5.1", "alibaba/glm-5.2", "alibaba/kimi-k2.7-code", + "alibaba/kimi-k3", "alibaba/qwen-flash", "alibaba/qwen-max", "alibaba/qwen-plus", diff --git a/packages/modelparams/src/generated/params-by-id.ts b/packages/modelparams/src/generated/params-by-id.ts index d6006f24..0f6eba95 100644 --- a/packages/modelparams/src/generated/params-by-id.ts +++ b/packages/modelparams/src/generated/params-by-id.ts @@ -71,6 +71,14 @@ export type ParamsById = { "extra_body.enable_thinking": boolean; "extra_body.thinking_budget": number; }; + "alibaba/kimi-k3": { + max_completion_tokens: number; + temperature: number; + top_p: number; + "extra_body.top_k": number; + "extra_body.enable_thinking": boolean; + "extra_body.thinking_budget": number; + }; "alibaba/qwen-flash": { max_tokens: number; temperature: number;