From da7fac1b7571f65d846741338c52741977236542 Mon Sep 17 00:00:00 2001 From: Simo Lin Date: Tue, 14 Oct 2025 04:42:43 -0400 Subject: [PATCH] [router] allow router launch server to use grpc mode (#11600) --- sgl-router/py_src/sglang_router/launch_server.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/sgl-router/py_src/sglang_router/launch_server.py b/sgl-router/py_src/sglang_router/launch_server.py index cce0faf7a..fd72f950a 100644 --- a/sgl-router/py_src/sglang_router/launch_server.py +++ b/sgl-router/py_src/sglang_router/launch_server.py @@ -1,4 +1,5 @@ import argparse +import asyncio import copy import logging import multiprocessing as mp @@ -13,7 +14,6 @@ import requests from setproctitle import setproctitle from sglang_router.launch_router import RouterArgs, launch_router -from sglang.srt.entrypoints.http_server import launch_server from sglang.srt.server_args import ServerArgs from sglang.srt.utils import is_port_available @@ -72,7 +72,15 @@ def run_server(server_args, dp_rank): # Set SGLANG_DP_RANK environment variable os.environ["SGLANG_DP_RANK"] = str(dp_rank) - launch_server(server_args) + # Launch server in appropriate mode (HTTP or gRPC) + if server_args.grpc_mode: + from sglang.srt.entrypoints.grpc_server import serve_grpc + + asyncio.run(serve_grpc(server_args)) + else: + from sglang.srt.entrypoints.http_server import launch_server + + launch_server(server_args) def launch_server_process( @@ -186,8 +194,10 @@ def main(): ) # Update router args with worker URLs + # Use grpc:// protocol if server is in gRPC mode, otherwise http:// + protocol = "grpc" if server_args.grpc_mode else "http" router_args.worker_urls = [ - f"http://{server_args.host}:{port}" for port in worker_ports + f"{protocol}://{server_args.host}:{port}" for port in worker_ports ] # Start the router