cli: Add lazy imports and fail-fast config validation (RFC #9853) (#19368)

Co-authored-by: hnyls2002 <lsyincs@gmail.com>
This commit is contained in:
Karthik Koralla
2026-03-03 16:03:49 -05:00
committed by GitHub
parent d6ac5f23cc
commit 85ab6a7f54
2 changed files with 15 additions and 11 deletions

View File

@@ -1,7 +1,5 @@
import argparse
from sglang.cli.generate import generate
from sglang.cli.serve import serve
from sglang.cli.utils import get_git_commit_hash
from sglang.version import __version__
@@ -17,19 +15,17 @@ def main():
# complex sub commands
subparsers = parser.add_subparsers(dest="subcommand", required=True)
serve_parser = subparsers.add_parser(
subparsers.add_parser(
"serve",
help="Launch the SGLang server.",
add_help=False, # Defer help to the specific parser
add_help=False,
)
serve_parser.set_defaults(func=serve)
generate_parser = subparsers.add_parser(
subparsers.add_parser(
"generate",
help="Run inference on a multimodal model.",
add_help=False, # Defer help to the specific parser
add_help=False,
)
generate_parser.set_defaults(func=generate)
# simple commands
version_parser = subparsers.add_parser(
@@ -39,4 +35,14 @@ def main():
version_parser.set_defaults(func=version)
args, extra_argv = parser.parse_known_args()
args.func(args, extra_argv)
if args.subcommand == "serve":
from sglang.cli.serve import serve
serve(args, extra_argv)
elif args.subcommand == "generate":
from sglang.cli.generate import generate
generate(args, extra_argv)
elif args.subcommand == "version":
version(args, extra_argv)

View File

@@ -111,8 +111,6 @@ def serve(args, extra_argv):
from sglang.launch_server import run_server
from sglang.srt.server_args import prepare_server_args
# Add a dummy argument for the program name, expected by prepare_server_args
# as it typically processes sys.argv
server_args = prepare_server_args(dispatch_argv)
run_server(server_args)