From 6266cd5ec377ac26a8954ea5a7c5ce239914ff91 Mon Sep 17 00:00:00 2001 From: Huamin Chen Date: Wed, 5 Mar 2025 20:37:38 -0500 Subject: [PATCH] update extproc args Signed-off-by: Huamin Chen --- src/vllm_router/parsers/parser.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/vllm_router/parsers/parser.py b/src/vllm_router/parsers/parser.py index 912fb5a..9e6a949 100644 --- a/src/vllm_router/parsers/parser.py +++ b/src/vllm_router/parsers/parser.py @@ -25,6 +25,13 @@ except ImportError: semantic_cache_available = False +# Check if extproc module is available +try: + from vllm_router.extproc.service import ExtProcService, serve_extproc + extproc_available = True +except ImportError: + extproc_available = False + # --- Argument Parsing and Initialization --- def validate_args(args): @@ -49,6 +56,9 @@ def validate_args(args): raise ValueError("Engine stats interval must be greater than 0.") if args.request_stats_window <= 0: raise ValueError("Request stats window must be greater than 0.") + # Validate extproc arguments + if args.extproc and not extproc_available: + raise ValueError("Extproc module is not available. Please install the required dependencies.") def parse_args(): @@ -194,6 +204,25 @@ def parse_args(): choices=["critical", "error", "warning", "info", "debug", "trace"], help="Log level for uvicorn. Default is 'info'.", ) + + # Add extproc arguments + parser.add_argument( + "--extproc", + action="store_true", + help="Run as an Envoy External Processing service" + ) + parser.add_argument( + "--extproc-port", + type=int, + default=50051, + help="Port to run the extproc service on" + ) + parser.add_argument( + "--extproc-grace-period", + type=int, + default=5, + help="Grace period in seconds for extproc service shutdown", + ) args = parser.parse_args() validate_args(args)