{
  "$schema": "https://modelparams.dev/api/v1/schema.json",
  "provider": "moonshot",
  "authType": "api_key",
  "apiSurface": "openai-chat-completions",
  "model": "moonshot-v1-32k",
  "status": "deprecated",
  "replacement": "moonshot/kimi-k2.6",
  "shutdownOn": "2026-08-31",
  "params": [
    {
      "path": "max_completion_tokens",
      "label": "Max tokens",
      "description": "Maximum number of tokens to generate in the chat completion.",
      "group": "generation_length",
      "type": "integer",
      "range": {
        "min": 1
      }
    },
    {
      "path": "stop",
      "label": "Stop sequence",
      "description": "Stops generation when this sequence is produced. Moonshot accepts up to 5 sequences of at most 32 bytes each.",
      "group": "generation_length",
      "type": "string"
    },
    {
      "path": "temperature",
      "label": "Temperature",
      "description": "Controls randomness. Lower values make outputs more focused; higher values make them more varied.",
      "group": "sampling",
      "type": "number",
      "default": 0.3,
      "range": {
        "min": 0,
        "max": 1,
        "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",
      "default": 1,
      "range": {
        "min": 0,
        "max": 1,
        "step": 0.01
      }
    },
    {
      "path": "n",
      "label": "Number of completions",
      "description": "How many chat completion choices to generate for the request.",
      "group": "generation_length",
      "type": "integer",
      "default": 1,
      "range": {
        "min": 1,
        "max": 5
      }
    },
    {
      "path": "presence_penalty",
      "label": "Presence penalty",
      "description": "Penalizes tokens that have already appeared, encouraging the model to talk about new topics.",
      "group": "sampling",
      "type": "number",
      "default": 0,
      "range": {
        "min": -2,
        "max": 2,
        "step": 0.1
      }
    },
    {
      "path": "frequency_penalty",
      "label": "Frequency penalty",
      "description": "Penalizes tokens by how often they have appeared, reducing verbatim repetition.",
      "group": "sampling",
      "type": "number",
      "default": 0,
      "range": {
        "min": -2,
        "max": 2,
        "step": 0.1
      }
    },
    {
      "path": "response_format.type",
      "label": "Response format",
      "description": "Forces the response into plain text or a JSON object.",
      "group": "output_format",
      "type": "enum",
      "default": "text",
      "values": [
        "text",
        "json_object"
      ]
    },
    {
      "path": "tool_choice",
      "label": "Tool choice",
      "description": "Controls tool calling: auto lets the model decide, none blocks tool calls, and required forces one.",
      "group": "tooling",
      "type": "enum",
      "default": "auto",
      "values": [
        "auto",
        "none",
        "required"
      ]
    },
    {
      "path": "logprobs",
      "label": "Log probabilities",
      "description": "Controls whether the response includes log probabilities for the generated tokens.",
      "group": "observability",
      "type": "boolean",
      "default": false
    },
    {
      "path": "top_logprobs",
      "label": "Top log probabilities",
      "description": "Number of most likely tokens to return a log probability for at each position.",
      "group": "observability",
      "applicability": {
        "only": {
          "logprobs": true
        }
      },
      "type": "integer",
      "range": {
        "min": 0,
        "max": 20
      }
    }
  ]
}
