mirror of
https://github.com/vllm-project/vllm.git
synced 2025-10-20 14:53:52 +08:00
[Frontend] improve vllm bench <bench_type> --help display (#20430)
Signed-off-by: reidliu41 <reid201711@gmail.com>
This commit is contained in:
@ -8,6 +8,8 @@ import typing
|
||||
|
||||
from vllm.entrypoints.cli.benchmark.base import BenchmarkSubcommandBase
|
||||
from vllm.entrypoints.cli.types import CLISubcommand
|
||||
from vllm.entrypoints.utils import (VLLM_SUBCMD_PARSER_EPILOG,
|
||||
show_filtered_argument_or_group_from_help)
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from vllm.utils import FlexibleArgumentParser
|
||||
@ -45,6 +47,9 @@ class BenchmarkSubcommand(CLISubcommand):
|
||||
)
|
||||
cmd_subparser.set_defaults(dispatch_function=cmd_cls.cmd)
|
||||
cmd_cls.add_cli_args(cmd_subparser)
|
||||
show_filtered_argument_or_group_from_help(cmd_subparser,
|
||||
["bench", cmd_cls.name])
|
||||
cmd_subparser.epilog = VLLM_SUBCMD_PARSER_EPILOG
|
||||
return bench_parser
|
||||
|
||||
|
||||
|
@ -60,7 +60,7 @@ class RunBatchSubcommand(CLISubcommand):
|
||||
)
|
||||
run_batch_parser = make_arg_parser(run_batch_parser)
|
||||
show_filtered_argument_or_group_from_help(run_batch_parser,
|
||||
"run-batch")
|
||||
["run-batch"])
|
||||
run_batch_parser.epilog = VLLM_SUBCMD_PARSER_EPILOG
|
||||
return run_batch_parser
|
||||
|
||||
|
@ -97,7 +97,7 @@ class ServeSubcommand(CLISubcommand):
|
||||
"https://docs.vllm.ai/en/latest/configuration/serve_args.html")
|
||||
|
||||
serve_parser = make_arg_parser(serve_parser)
|
||||
show_filtered_argument_or_group_from_help(serve_parser, "serve")
|
||||
show_filtered_argument_or_group_from_help(serve_parser, ["serve"])
|
||||
serve_parser.epilog = VLLM_SUBCMD_PARSER_EPILOG
|
||||
return serve_parser
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
import functools
|
||||
import os
|
||||
@ -15,8 +16,8 @@ from vllm.logger import init_logger
|
||||
logger = init_logger(__name__)
|
||||
|
||||
VLLM_SUBCMD_PARSER_EPILOG = (
|
||||
"Tip: Use `vllm [serve|run-batch] --help=<keyword>` "
|
||||
"to explore arguments from help.\n"
|
||||
"Tip: Use `vllm [serve|run-batch|bench <bench_type>] "
|
||||
"--help=<keyword>` to explore arguments from help.\n"
|
||||
" - To view a argument group: --help=ModelConfig\n"
|
||||
" - To view a single argument: --help=max-num-seqs\n"
|
||||
" - To search by keyword: --help=max\n"
|
||||
@ -178,13 +179,19 @@ def _validate_truncation_size(
|
||||
return truncate_prompt_tokens
|
||||
|
||||
|
||||
def show_filtered_argument_or_group_from_help(parser, subcommand_name):
|
||||
def show_filtered_argument_or_group_from_help(parser: argparse.ArgumentParser,
|
||||
subcommand_name: list[str]):
|
||||
import sys
|
||||
|
||||
# Only handle --help=<keyword> for the current subcommand.
|
||||
# Since subparser_init() runs for all subcommands during CLI setup,
|
||||
# we skip processing if the subcommand name is not in sys.argv.
|
||||
if subcommand_name not in sys.argv:
|
||||
# sys.argv[0] is the program name. The subcommand follows.
|
||||
# e.g., for `vllm bench latency`,
|
||||
# sys.argv is `['vllm', 'bench', 'latency', ...]`
|
||||
# and subcommand_name is "bench latency".
|
||||
if len(sys.argv) <= len(subcommand_name) or sys.argv[
|
||||
1:1 + len(subcommand_name)] != subcommand_name:
|
||||
return
|
||||
|
||||
for arg in sys.argv:
|
||||
|
Reference in New Issue
Block a user