{
  "$schema": "https://modelparams.dev/api/v1/schema.json",
  "provider": "cerebras",
  "authType": "api_key",
  "model": "zai-glm-4.7",
  "params": [
    {
      "path": "max_completion_tokens",
      "label": "Max tokens",
      "description": "Maximum number of output tokens the model may generate, including reasoning tokens.",
      "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. Adjust this or top_p, not both.",
      "group": "sampling",
      "type": "number",
      "range": {
        "min": 0,
        "max": 2,
        "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": "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": "presence_penalty",
      "label": "Presence penalty",
      "description": "Penalizes tokens that have already appeared, encouraging the model to introduce new topics.",
      "group": "sampling",
      "type": "number",
      "default": 0,
      "range": {
        "min": -2,
        "max": 2,
        "step": 0.1
      }
    },
    {
      "path": "seed",
      "label": "Seed",
      "description": "Seed used for best-effort deterministic sampling when reproducible outputs are desired.",
      "group": "sampling",
      "type": "integer"
    },
    {
      "path": "stop",
      "label": "Stop",
      "description": "A string or list of strings where the API will stop generating further tokens. Cerebras accepts up to four stop sequences.",
      "group": "generation_length",
      "type": "string"
    },
    {
      "path": "reasoning_effort",
      "label": "Reasoning effort",
      "description": "Controls how much reasoning the model performs before answering. 'none' disables reasoning.",
      "group": "reasoning",
      "type": "enum",
      "values": [
        "none",
        "low",
        "medium",
        "high"
      ]
    },
    {
      "path": "clear_thinking",
      "label": "Clear thinking",
      "description": "When true, the model's thinking from previous turns is excluded from the conversation context; when false, it is preserved, which is useful for agentic workflows.",
      "group": "reasoning",
      "type": "boolean",
      "default": true
    },
    {
      "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"
      ]
    }
  ]
}
