diff --git a/vllm/entrypoints/api_server.py b/vllm/entrypoints/api_server.py index 4294a8aad9a5e..11ffc4f67ceaa 100644 --- a/vllm/entrypoints/api_server.py +++ b/vllm/entrypoints/api_server.py @@ -145,7 +145,7 @@ async def run_server(args: Namespace, if __name__ == "__main__": parser = FlexibleArgumentParser() parser.add_argument("--host", type=str, default=None) - parser.add_argument("--port", type=int, default=8000, ge=1024, le=65535) + parser.add_argument("--port", type=parser.check_port, default=8000) parser.add_argument("--ssl-keyfile", type=str, default=None) parser.add_argument("--ssl-certfile", type=str, default=None) parser.add_argument("--ssl-ca-certs", diff --git a/vllm/utils.py b/vllm/utils.py index 4d3f90c95a7d0..dcafd5411bbb2 100644 --- a/vllm/utils.py +++ b/vllm/utils.py @@ -1194,6 +1194,17 @@ class FlexibleArgumentParser(argparse.ArgumentParser): return super().parse_args(processed_args, namespace) + def check_port(self, value): + try: + value = int(value) + except ValueError: + raise argparse.ArgumentTypeError("Port must be an integer") + + if not (1024 <= value <= 65535): + raise argparse.ArgumentTypeError("Port must be between 1024 and 65535") + + return value + def _pull_args_from_config(self, args: List[str]) -> List[str]: """Method to pull arguments specified in the config file into the command-line args variable.