{
  "$schema": "https://modelparams.dev/api/v1/schema.json",
  "provider": "moonshot",
  "authType": "api_key",
  "model": "moonshot-v1-128k",
  "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": "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"
      ]
    }
  ]
}
