{
    "type": "object",
    "properties": {
      "output": {
        "pretty_name": "Outputs",
        "type": "object",
        "properties": {
          "max_tokens": {
            "pretty_name": "Max Tokens",
            "type": "integer",
            "minimum": 16,
            "maximum": 4096,
            "step": 16,
            "default": 16,
            "description": "The maximum number of tokens to generate."
          },
          "max_context_length": {
            "pretty_name": "Max Context Length",
            "type": "integer",
            "minimum": 128,
            "maximum": 999936,
            "step": 128,
            "default": 4096,
            "description": "The model's maximum context size."
          }
        },
        "description": "Control the number of tokens to generate or the maximum context length."
      },
      "sequence": {
        "pretty_name": "Sequence",
        "type": "object",
        "properties": {
          "n": {
            "pretty_name": "Number of Outputs",
            "type": "integer",
            "minimum": 1,
            "maximum": "20",
            "step": 1,
            "default": 1,
            "description": "The number of outputs to generate."
          },
          "best_of": {
            "pretty_name": "Best of Outputs",
            "type": "integer",
            "minimum": 1,
            "maximum": "20",
            "step": 1,
            "default": 1,
            "description": "The number of outputs to generate and return the best of."
          }
        },
        "description": "Control the number of outputs to generate."
      },
      "penalties": {
        "pretty_name": "Penalties",
        "type": "object",
        "properties": {
          "presence_penalty": {
            "pretty_name": "Presence Penalty",
            "type": "float",
            "minimum": -2,
            "maximum": 2,
            "step": 0.001,
            "default": 0,
            "description": "Penalizes tokens based on their presence in the generated text."
          },
          "frequency_penalty": {
            "pretty_name": "Frequency Penalty",
            "type": "float",
            "minimum": -2,
            "maximum": 2,
            "step": 0.001,
            "default": 0,
            "description": "Penalizes tokens based on their frequency in the generated text."
          },
          "repetition_penalty": {
            "pretty_name": "Repetition Penalty",
            "type": "float",
            "minimum": 1,
            "maximum": 3,
            "step": 0.001,
            "default": 1,
            "description": "Penalizes tokens if they were generated in the previous text."
          }
        },
        "description": "Penalize tokens based on their presence, frequency, and repetition in the generated text."
      },
      "transform": {
        "pretty_name": "Transformations",
        "type": "object",
        "properties": {
          "temperature": {
            "pretty_name": "Temperature",
            "type": "float",
            "minimum": 0,
            "maximum": 10,
            "step": 0.001,
            "default": 1,
            "description": "Controls the randomness of the generated text."
          },
          "dynatemp": {
            "pretty_name": "Dynamic Temperature",
            "type": "object",
            "properties": {
              "dynatemp_min": {
                "pretty_name": "Minimum Temperature",
                "type": "float",
                "minimum": 0,
                "maximum": 10,
                "step": 0.001,
                "default": 0,
                "description": "The minimum temperature value."
              },
              "dynatemp_max": {
                "pretty_name": "Maximum Temperature",
                "type": "float",
                "minimum": 0,
                "maximum": 10,
                "step": 0.001,
                "default": 0,
                "description": "The maximum temperature value."
              },
              "dynatemp_exponent": {
                "pretty_name": "Exponent",
                "type": "float",
                "minimum": 0.01,
                "maximum": 10,
                "step": 0.01,
                "default": 1,
                "description": "The exponent value for dynamic temperature."
              }
            },
            "description": "Dynamically adjust temperature."
          },
          "smoothing": {
            "pretty_name": "Smoothing",
            "type": "object",
            "properties": {
              "smoothing_factor": {
                "pretty_name": "Smoothing Factor",
                "type": "float",
                "minimum": 0,
                "maximum": 10,
                "step": 0.001,
                "default": 0,
                "description": "Apply a quadratic smoothing factor to the probability distribution."
              },
              "smoothing_curve": {
                "pretty_name": "Smoothing Curve",
                "type": "float",
                "minimum": 1,
                "maximum": 10,
                "step": 0.001,
                "default": 1,
                "description": "Apply a cubic smoothing curve to the probability distribution."
              }
            },
            "description": "Quadratic and Cubic Sampling methods."
          }
        },
        "description": "Apply transformations to the probability distribution."
      },
      "probabilistic": {
        "pretty_name": "Probabilistic",
        "type": "object",
        "properties": {
          "top_p": {
            "pretty_name": "Top P",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 1,
            "description": "The cumulative probability of the top tokens to keep."
          },
          "top_a": {
            "pretty_name": "Top A",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 0,
            "description": "The threshold for the top tokens to keep."
          },
          "min_p": {
            "pretty_name": "Min P",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 0,
            "description": "The minimum probability threshold of the tokens to keep."
          },
          "top_k": {
            "pretty_name": "Top K",
            "type": "integer",
            "minimum": 0,
            "maximum": "1024",
            "step": 1,
            "default": 0,
            "description": "The number of top tokens to keep."
          },
          "typical_p": {
            "pretty_name": "Typical P",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 1,
            "description": "Control the cumulative probability of tokens closest in surprise to the expected surprise to consider."
          },
          "eta_cutoff": {
            "pretty_name": "Eta Cutoff",
            "type": "float",
            "minimum": 0,
            "maximum": 20,
            "step": 0.0001,
            "default": 0,
            "description": "The eta cutoff value."
          },
          "epsilon_cutoff": {
            "pretty_name": "Epsilon Cutoff",
            "type": "float",
            "minimum": 0,
            "maximum": 9,
            "step": 0.0001,
            "default": 0,
            "description": "The epsilon cutoff value."
          },
          "tfs": {
            "pretty_name": "Tail-Free Sampling",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 1,
            "description": "The cumulative curvature of the distribution to keep."
          }
        },
        "description": "Control the probability distribution of the tokens."
      },
      "mirostat": {
        "pretty_name": "Mirostat",
        "type": "object",
        "properties": {
          "mirostat_mode": {
            "pretty_name": "Mirostat Mode",
            "type": "integer",
            "minimum": 0,
            "maximum": 2,
            "step": 1,
            "default": 0,
            "description": "The mirostat mode to use. Only mode 2 is supported."
          },
          "mirostat_tau": {
            "pretty_name": "Mirostat Tau",
            "type": "float",
            "minimum": 0,
            "maximum": 20,
            "step": 0.01,
            "default": 0,
            "description": "The target perplexity value that mirostat works towards."
          },
          "mirostat_eta": {
            "pretty_name": "Mirostat Eta",
            "type": "float",
            "minimum": 0,
            "maximum": 1,
            "step": 0.001,
            "default": 0,
            "description": "The rate at which mirostat updates its internal surprisal"
          }
        },
        "description": "An adaptive sampling method that directly controls the perplexity of the generated text."
      },
      "beam_search": {
        "pretty_name": "Beam Search",
        "type": "object",
        "properties": {
          "use_beam_search": {
            "pretty_name": "Use Beam Search",
            "type": "bool",
            "default": false,
            "description": "Use beam search to generate the output."
          },
          "length_penalty": {
            "pretty_name": "Length Penalty",
            "type": "float",
            "minimum": -5,
            "maximum": 5,
            "step": 0.1,
            "default": 1,
            "description": "The length penalty value."
          },
          "early_stopping": {
            "pretty_name": "Early Stopping",
            "type": "bool",
            "default": false,
            "description": "Stop the beam search when at least `best_of` sentences are finished per batch."
          }
        },
        "description": "Control the beam search parameters."
      },
      "stops": {
        "pretty_name": "Stop Sequences",
        "type": "object",
        "properties": {
          "stop": {
            "pretty_name": "Stopping Strings",
            "type": "array",
            "items": {
              "type": "string"
            },
            "default": [],
            "description": "The strings to stop the generation at."
          },
          "stop_token_ids": {
            "pretty_name": "Stopping Token IDs",
            "type": "array",
            "items": {
              "type": "integer"
            },
            "default": [],
            "description": "The token IDs to stop the generation at."
          },
          "ignore_eos": {
            "pretty_name": "Ignore EOS",
            "type": "bool",
            "default": false,
            "description": "Ignore the End of Sequence token and continue generating."
          }
        },
        "description": "Stop the generation at specific strings or token IDs."
      },
      "logprobs": {
        "pretty_name": "Log Probabilities",
        "type": "object",
        "properties": {
          "logprobs": {
            "pretty_name": "Log probabilities",
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "step": 1,
            "default": "null",
            "description": "The number of log probabilities to return for output tokens."
          },
          "prompt_logprobs": {
            "pretty_name": "Prompt Log probabilities",
            "type": "integer",
            "minimum": 0,
            "maximum": 10,
            "step": 1,
            "default": "null",
            "description": "The number of log probabilities to return for prompt tokens."
          }
        },
        "description": "Return log probabilities for tokens."
      },
      "logit_processors": {
        "pretty_name": "Logits Processors",
        "type": "object",
        "properties": {
          "custom_token_bans": {
            "pretty_name": "Custom Token Bans",
            "type": "array",
            "items": {
              "type": "integer"
            },
            "default": [],
            "description": "The token IDs to ban from being generated."
          },
          "logit_bias": {
            "pretty_name": "Logit Bias",
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "minItems": 2,
              "maxItems": 2
            },
            "default": [],
            "description": "The token ID and bias value to add to the logits."
          }
        },
        "description": "Process the logits before generating the output."
      },
      "misc": {
        "pretty_name": "Miscellaneous",
        "type": "object",
        "properties": {
          "seed": {
            "pretty_name": "Seed",
            "type": "integer",
            "minimum": "-inf",
            "maximum": "inf",
            "step": 1,
            "default": "null",
            "description": "The seed value for the random number generator."
          },
          "skip_special_tokens": {
            "pretty_name": "Skip Special Tokens",
            "type": "bool",
            "default": true,
            "description": "Skip special tokens in the generated output."
          },
          "spaces_between_special_tokens": {
            "pretty_name": "Spaces Between Special Tokens",
            "type": "bool",
            "default": true,
            "description": "Add spaces between special tokens in the generated output."
          },
          "include_stop_str_in_output": {
            "pretty_name": "Include Stop String in Output",
            "type": "bool",
            "default": false,
            "description": "Include the stop string in the generated output."
          }
        },
        "description": "Miscellaneous settings."
      }
    }
  }
  