mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2026-08-01 15:27:55 +08:00
[Docs] Reduce noise in docs and --help from the JSON tip (#22567)
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
This commit is contained in:
parent
1bf5e1f25b
commit
56186474f6
@ -16,6 +16,16 @@ Available Commands:
|
|||||||
vllm {chat,complete,serve,bench,collect-env,run-batch}
|
vllm {chat,complete,serve,bench,collect-env,run-batch}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
When passing JSON CLI arguments, the following sets of arguments are equivalent:
|
||||||
|
|
||||||
|
- `--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'`
|
||||||
|
- `--json-arg.key1 value1 --json-arg.key2.key3 value2`
|
||||||
|
|
||||||
|
Additionally, list elements can be passed individually using `+`:
|
||||||
|
|
||||||
|
- `--json-arg '{"key4": ["value3", "value4", "value5"]}'`
|
||||||
|
- `--json-arg.key4+ value3 --json-arg.key4+='value4,value5'`
|
||||||
|
|
||||||
## serve
|
## serve
|
||||||
|
|
||||||
Start the vLLM OpenAI Compatible API server.
|
Start the vLLM OpenAI Compatible API server.
|
||||||
|
|||||||
@ -11,6 +11,16 @@ Engine arguments control the behavior of the vLLM engine.
|
|||||||
|
|
||||||
The engine argument classes, [EngineArgs][vllm.engine.arg_utils.EngineArgs] and [AsyncEngineArgs][vllm.engine.arg_utils.AsyncEngineArgs], are a combination of the configuration classes defined in [vllm.config][]. Therefore, if you are interested in developer documentation, we recommend looking at these configuration classes as they are the source of truth for types, defaults and docstrings.
|
The engine argument classes, [EngineArgs][vllm.engine.arg_utils.EngineArgs] and [AsyncEngineArgs][vllm.engine.arg_utils.AsyncEngineArgs], are a combination of the configuration classes defined in [vllm.config][]. Therefore, if you are interested in developer documentation, we recommend looking at these configuration classes as they are the source of truth for types, defaults and docstrings.
|
||||||
|
|
||||||
|
When passing JSON CLI arguments, the following sets of arguments are equivalent:
|
||||||
|
|
||||||
|
- `--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'`
|
||||||
|
- `--json-arg.key1 value1 --json-arg.key2.key3 value2`
|
||||||
|
|
||||||
|
Additionally, list elements can be passed individually using `+`:
|
||||||
|
|
||||||
|
- `--json-arg '{"key4": ["value3", "value4", "value5"]}'`
|
||||||
|
- `--json-arg.key4+ value3 --json-arg.key4+='value4,value5'`
|
||||||
|
|
||||||
## `EngineArgs`
|
## `EngineArgs`
|
||||||
|
|
||||||
--8<-- "docs/argparse/engine_args.md"
|
--8<-- "docs/argparse/engine_args.md"
|
||||||
|
|||||||
@ -178,17 +178,8 @@ def _compute_kwargs(cls: ConfigType) -> dict[str, Any]:
|
|||||||
kwargs[name] = {"default": default, "help": help}
|
kwargs[name] = {"default": default, "help": help}
|
||||||
|
|
||||||
# Set other kwargs based on the type hints
|
# Set other kwargs based on the type hints
|
||||||
json_tip = """Should either be a valid JSON string or JSON keys
|
json_tip = ("Should either be a valid JSON string or JSON keys passed "
|
||||||
passed individually. For example, the following sets of arguments are
|
"individually.")
|
||||||
equivalent:
|
|
||||||
|
|
||||||
- `--json-arg '{"key1": "value1", "key2": {"key3": "value2"}}'`\n
|
|
||||||
- `--json-arg.key1 value1 --json-arg.key2.key3 value2`
|
|
||||||
|
|
||||||
Additionally, list elements can be passed individually using `+`:
|
|
||||||
|
|
||||||
- `--json-arg '{"key4": ["value3", "value4", "value5"]}'`\n
|
|
||||||
- `--json-arg.key4+ value3 --json-arg.key4+='value4,value5'`"""
|
|
||||||
if dataclass_cls is not None:
|
if dataclass_cls is not None:
|
||||||
|
|
||||||
def parse_dataclass(val: str, cls=dataclass_cls) -> Any:
|
def parse_dataclass(val: str, cls=dataclass_cls) -> Any:
|
||||||
@ -1831,13 +1822,3 @@ def human_readable_int(value):
|
|||||||
|
|
||||||
# Regular plain number.
|
# Regular plain number.
|
||||||
return int(value)
|
return int(value)
|
||||||
|
|
||||||
|
|
||||||
# These functions are used by sphinx to build the documentation
|
|
||||||
def _engine_args_parser():
|
|
||||||
return EngineArgs.add_cli_args(FlexibleArgumentParser())
|
|
||||||
|
|
||||||
|
|
||||||
def _async_engine_args_parser():
|
|
||||||
return AsyncEngineArgs.add_cli_args(FlexibleArgumentParser(),
|
|
||||||
async_args_only=True)
|
|
||||||
|
|||||||
@ -1669,11 +1669,19 @@ class FlexibleArgumentParser(ArgumentParser):
|
|||||||
"""ArgumentParser that allows both underscore and dash in names."""
|
"""ArgumentParser that allows both underscore and dash in names."""
|
||||||
|
|
||||||
_deprecated: set[Action] = set()
|
_deprecated: set[Action] = set()
|
||||||
|
_json_tip: str = (
|
||||||
|
"When passing JSON CLI arguments, the following sets of arguments "
|
||||||
|
"are equivalent:\n"
|
||||||
|
' --json-arg \'{"key1": "value1", "key2": {"key3": "value2"}}\'\n'
|
||||||
|
" --json-arg.key1 value1 --json-arg.key2.key3 value2\n\n"
|
||||||
|
"Additionally, list elements can be passed individually using +:\n"
|
||||||
|
' --json-arg \'{"key4": ["value3", "value4", "value5"]}\'\n'
|
||||||
|
" --json-arg.key4+ value3 --json-arg.key4+=\'value4,value5\'\n\n")
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
# Set the default 'formatter_class' to SortedHelpFormatter
|
# Set the default "formatter_class" to SortedHelpFormatter
|
||||||
if 'formatter_class' not in kwargs:
|
if "formatter_class" not in kwargs:
|
||||||
kwargs['formatter_class'] = SortedHelpFormatter
|
kwargs["formatter_class"] = SortedHelpFormatter
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
if sys.version_info < (3, 13):
|
if sys.version_info < (3, 13):
|
||||||
@ -1715,6 +1723,13 @@ class FlexibleArgumentParser(ArgumentParser):
|
|||||||
self._action_groups.append(group)
|
self._action_groups.append(group)
|
||||||
return group
|
return group
|
||||||
|
|
||||||
|
def format_help(self) -> str:
|
||||||
|
# Add tip about JSON arguments to the epilog
|
||||||
|
epilog = self.epilog or ""
|
||||||
|
if not epilog.startswith(FlexibleArgumentParser._json_tip):
|
||||||
|
self.epilog = FlexibleArgumentParser._json_tip + epilog
|
||||||
|
return super().format_help()
|
||||||
|
|
||||||
def parse_args( # type: ignore[override]
|
def parse_args( # type: ignore[override]
|
||||||
self,
|
self,
|
||||||
args: list[str] | None = None,
|
args: list[str] | None = None,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user