Repository: vllm-project/guidellm
Issue: How to specify input/output token lengths for requests?
Root cause: Unimplemented Feature Gap

Looking at the help command for guidellm, there is no information on how to set input or output length

```
guidellm --help
Usage: guidellm [OPTIONS]

  Generate a benchmark report for a specified backend and dataset.

Options:
  --target TEXT                   The target path or url for the backend to
                                  evaluate. Ex: 'http://localhost:8000/v1'
  --backend [openai_server]       The backend to use for benchmarking. The
                                  default is OpenAI Server enabling
                                  compatiability with any server that follows
                                  the OpenAI spec including vLLM
  --model TEXT                    The Model to use for benchmarking. If not
                                  provided, it will use the first available
                                  model provided the backend supports listing
                                  models.
  --data TEXT                     The data source to use for benchmarking.
                                  Depending on the data-type, it should be a
                                  path to a file, a dataset name, or a
                                  configuration for emulated data.
  --data-type [emulated|file|transformers]
                                  The type of data given for benchmarking
  --tokenizer TEXT                The tokenizer to use for calculating the
                                  number of prompt tokens. If not provided,
                                  will use a Llama 3.1 tokenizer.
  --rate-type [sweep|synchronous|throughput|constant|poisson]
                                  The type of request rate to use for
                                  benchmarking. The default is sweep, which
                                  will run a synchronous and throughput rate-
                                  type and then interfill with constant rates
                                  between the two values
  --rate FLOAT                    The request rate to use for constant and
                                  poisson rate types
  --max-seconds INTEGER           The maximum number of seconds for each
                                  benchmark run. Either max-seconds, max-
                                  requests, or both must be set. The default
                                  is 120 seconds. Note, this is the maximum
                                  time for each rate supplied, not the total
                                  time. This value should be large enough to
                                  allow for the server's performance to
                                  stabilize.
  --max-requests INTEGER          The maximum number of requests for each
                                  benchmark run. Either max-seconds, max-
                                  requests, or both must be set. Note, this is
                                  the maximum number of requests for each rate
                                  supplied, not the total number of requests.
                                  This value should be large enough to allow
                                  for the server's performance to stabilize.
  --output-path TEXT              The output path to save the output report
                                  to. The default is guidance_report.json.
  --disable-continuous-refresh    Disable continual refreshing of the output
                                  table in the CLI until the user exits.
  --help                          Show this message and exit.
  ```
  
In other benchmarking frameworks there are usually top-level parameters for this, especially when using random data:
https://github.com/vllm-project/vllm/blob/9db642138b54ef3df81873eac9fe7e15fc2da584/benchmarks/benchmark_serving.py#L692-L705
  ```python
      parser.add_argument(
        "--random-input-len",
        type=int,
        default=1024,
        help=
        "Number of input tokens per request, used only for random sampling.",
    )
    parser.add_argument(
        "--random-output-len",
        type=int,
        default=128,
        help=
        "Number of output tokens per request, used only for random sampling.",
    )
```