From c6ed93860fa8338bf7e4dfcce0040046a2f0df48 Mon Sep 17 00:00:00 2001 From: Robin <863579016@qq.com> Date: Sat, 22 Feb 2025 14:05:28 +0800 Subject: [PATCH] =?UTF-8?q?[Bugfix][API=20Server]=20Fix=20invalid=20usage?= =?UTF-8?q?=20of=20'ge'=20and=20'le'=20in=20port=20valid=E2=80=A6=20(#1367?= =?UTF-8?q?2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vllm/entrypoints/api_server.py | 2 +- vllm/utils.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) 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.