From ed427e1299d53d464c0cf8765efb599c6aee654c Mon Sep 17 00:00:00 2001 From: David Cheung Date: Wed, 1 Apr 2026 21:17:50 -0700 Subject: [PATCH] Migrate all callers from /get_server_info to /server_info (#21463) --- docs/advanced_features/server_arguments.md | 2 +- docs/advanced_features/sgl_model_gateway.md | 4 ++-- docs/basic_usage/native_api.ipynb | 4 ++-- docs/developer_guide/bench_serving.md | 2 +- python/sglang/bench_serving.py | 4 ++-- python/sglang/lang/backend/runtime_endpoint.py | 4 ++-- python/sglang/profiler.py | 2 +- python/sglang/test/bench_one_batch_server_internal.py | 4 ++-- python/sglang/test/kits/cache_hit_kit.py | 2 +- python/sglang/test/kl_test_utils.py | 4 ++-- python/sglang/test/nightly_utils.py | 2 +- scripts/playground/bench_speculative.py | 2 +- sgl-model-gateway/README.md | 2 +- .../bindings/python/src/sglang_router/mini_lb.py | 6 ++++-- sgl-model-gateway/src/routers/http/pd_router.rs | 2 +- sgl-model-gateway/src/routers/http/router.rs | 2 +- sgl-model-gateway/src/server.rs | 2 ++ sgl-model-gateway/tests/api/api_endpoints_test.rs | 4 ++-- sgl-model-gateway/tests/common/mock_worker.rs | 2 +- sgl-model-gateway/tests/common/tls_mock_worker.rs | 2 +- sgl-model-gateway/tests/routing/test_pd_routing.rs | 2 +- test/registered/4-gpu-models/test_qwen35_models.py | 4 ++-- test/registered/8-gpu-models/test_deepseek_v32_mtp.py | 8 ++++---- test/registered/8-gpu-models/test_deepseek_v3_mtp.py | 2 +- .../amd/accuracy/mi30x/test_deepseek_v32_mtp_eval_amd.py | 2 +- .../accuracy/mi35x/test_deepseek_v32_mtp_eval_mi35x.py | 2 +- test/registered/amd/test_deepseek_r1_mxfp4_8gpu.py | 2 +- test/registered/amd/test_deepseek_v32_mtp.py | 4 ++-- test/registered/amd/test_deepseek_v3_mtp.py | 2 +- test/registered/amd/test_deepseek_v3_mtp_kv_fp8.py | 2 +- test/registered/amd/test_moriep_small.py | 6 +++--- test/registered/amd/test_qwen3_coder_next_8gpu.py | 2 +- .../ascend/basic_function/parameter/test_npu_warmups.py | 2 +- test/registered/attention/test_hybrid_attn_backend.py | 2 +- test/registered/core/test_srt_endpoint.py | 4 ++-- test/registered/distributed/test_data_parallelism.py | 6 +++--- test/registered/distributed/test_dp_attention.py | 2 +- test/registered/distributed/test_dp_attention_large.py | 2 +- test/registered/ep/test_deepep_large.py | 2 +- test/registered/ep/test_deepep_small.py | 6 +++--- test/registered/mla/test_mla_deepseek_v3.py | 2 +- test/registered/mla/test_mla_flashinfer.py | 2 +- test/registered/mla/test_mla_int8_deepseek_v3.py | 4 ++-- test/registered/quant/test_deepseek_v32_fp4_mtp_4gpu.py | 4 ++-- test/registered/quant/test_w4a8_deepseek_v3.py | 2 +- test/registered/spec/eagle/test_eagle_dp_attention.py | 2 +- .../spec/eagle/test_eagle_infer_beta_dp_attention.py | 2 +- .../spec/test_standalone_speculative_decoding.py | 4 ++-- 48 files changed, 74 insertions(+), 70 deletions(-) diff --git a/docs/advanced_features/server_arguments.md b/docs/advanced_features/server_arguments.md index 82417cb41..17935a400 100644 --- a/docs/advanced_features/server_arguments.md +++ b/docs/advanced_features/server_arguments.md @@ -212,7 +212,7 @@ Please consult the documentation below and [server_args.py](https://github.com/s | Argument | Description | Defaults | Options | | --- | --- | --- | --- | | `--api-key` | Set API key of the server. It is also used in the OpenAI API compatible server. | `None` | Type: str | -| `--admin-api-key` | Set **admin API key** for administrative/control endpoints (e.g., weights update, cache flush, `/get_server_info`). Endpoints marked as admin-only require `Authorization: Bearer ` when this is set. | `None` | Type: str | +| `--admin-api-key` | Set **admin API key** for administrative/control endpoints (e.g., weights update, cache flush, `/server_info`). Endpoints marked as admin-only require `Authorization: Bearer ` when this is set. | `None` | Type: str | | `--served-model-name` | Override the model name returned by the v1/models endpoint in OpenAI API server. | `None` | Type: str | | `--weight-version` | Version identifier for the model weights. Defaults to 'default' if not specified. | `default` | Type: str | | `--chat-template` | The builtin chat template name or the path of the chat template file. This is only used for OpenAI-compatible API server. | `None` | Type: str | diff --git a/docs/advanced_features/sgl_model_gateway.md b/docs/advanced_features/sgl_model_gateway.md index 753743b0b..a718b8a37 100644 --- a/docs/advanced_features/sgl_model_gateway.md +++ b/docs/advanced_features/sgl_model_gateway.md @@ -77,7 +77,7 @@ SGLang Model Gateway is a high-performance model-routing gateway for large-scale ### Control Plane -- **Worker Manager** discovers capabilities (`/get_server_info`, `/get_model_info`), tracks load, and registers/removes workers in the shared registry. +- **Worker Manager** discovers capabilities (`/server_info`, `/get_model_info`), tracks load, and registers/removes workers in the shared registry. - **Job Queue** serializes add/remove requests and exposes status (`/workers/{worker_id}`) so clients can track onboarding progress. - **Load Monitor** feeds cache-aware and power-of-two policies with live worker load statistics. - **Health Checker** continuously probes workers and updates readiness, circuit breaker state, and router metrics. @@ -552,7 +552,7 @@ Response: | `GET` | `/engine_metrics` | Engine-level metrics from workers | | `GET` | `/v1/models` | List available models | | `GET` | `/get_model_info` | Get model information | -| `GET` | `/get_server_info` | Get server information | +| `GET` | `/server_info` | Get server information | | `POST` | `/flush_cache` | Clear all caches | | `GET` | `/get_loads` | Get all worker loads | | `POST` | `/wasm` | Upload WASM module | diff --git a/docs/basic_usage/native_api.ipynb b/docs/basic_usage/native_api.ipynb index 65ff5809e..d3ead5e34 100644 --- a/docs/basic_usage/native_api.ipynb +++ b/docs/basic_usage/native_api.ipynb @@ -10,7 +10,7 @@ "\n", "- `/generate` (text generation model)\n", "- `/get_model_info`\n", - "- `/get_server_info`\n", + "- `/server_info`\n", "- `/health`\n", "- `/health_generate`\n", "- `/flush_cache`\n", @@ -140,7 +140,7 @@ "metadata": {}, "outputs": [], "source": [ - "url = f\"http://localhost:{port}/get_server_info\"\n", + "url = f\"http://localhost:{port}/server_info\"\n", "\n", "response = requests.get(url)\n", "print_highlight(response.text)" diff --git a/docs/developer_guide/bench_serving.md b/docs/developer_guide/bench_serving.md index 5a67723c8..fee65a117 100644 --- a/docs/developer_guide/bench_serving.md +++ b/docs/developer_guide/bench_serving.md @@ -352,4 +352,4 @@ python3 -m sglang.bench_serving \ ### Notes - The script raises the file descriptor soft limit (`RLIMIT_NOFILE`) to help with many concurrent connections. -- For sglang, `/get_server_info` is queried post-run to report speculative decoding accept length when available. +- For sglang, `/server_info` is queried post-run to report speculative decoding accept length when available. diff --git a/python/sglang/bench_serving.py b/python/sglang/bench_serving.py index 89d800d07..161b4c3be 100644 --- a/python/sglang/bench_serving.py +++ b/python/sglang/bench_serving.py @@ -1402,7 +1402,7 @@ async def benchmark( if "sglang" in backend: server_info = requests.get( - base_url + "/get_server_info", headers=get_auth_headers() + base_url + "/server_info", headers=get_auth_headers() ) if server_info.status_code == 200: server_info_json = server_info.json() @@ -1538,7 +1538,7 @@ async def benchmark( print("{:<40} {:<10.2f}".format("Max ITL (ms):", metrics.max_itl_ms)) print("=" * 50) - resp = requests.get(base_url + "/get_server_info", headers=get_auth_headers()) + resp = requests.get(base_url + "/server_info", headers=get_auth_headers()) server_info = resp.json() if resp.status_code == 200 else None if ( diff --git a/python/sglang/lang/backend/runtime_endpoint.py b/python/sglang/lang/backend/runtime_endpoint.py index 41a481031..8732e401f 100644 --- a/python/sglang/lang/backend/runtime_endpoint.py +++ b/python/sglang/lang/backend/runtime_endpoint.py @@ -67,7 +67,7 @@ class RuntimeEndpoint(BaseBackend): def get_server_info(self): res = http_request( - self.base_url + "/get_server_info", + self.base_url + "/server_info", api_key=self.api_key, verify=self.verify, ) @@ -531,7 +531,7 @@ class Runtime: async def get_server_info(self): async with aiohttp.ClientSession() as session: - async with session.get(f"{self.url}/get_server_info") as response: + async with session.get(f"{self.url}/server_info") as response: if response.status == 200: return await response.json() else: diff --git a/python/sglang/profiler.py b/python/sglang/profiler.py index ebc7a100e..8424e7f54 100644 --- a/python/sglang/profiler.py +++ b/python/sglang/profiler.py @@ -42,7 +42,7 @@ def run_profile( # Dump server args. file_path = Path(output_dir) / "server_args.json" if not file_path.exists(): - response = requests.get(url + "/get_server_info") + response = requests.get(url + "/server_info") response.raise_for_status() server_args_data = response.json() with open(file_path, "w") as file: diff --git a/python/sglang/test/bench_one_batch_server_internal.py b/python/sglang/test/bench_one_batch_server_internal.py index 4585340da..39e7ea437 100644 --- a/python/sglang/test/bench_one_batch_server_internal.py +++ b/python/sglang/test/bench_one_batch_server_internal.py @@ -609,7 +609,7 @@ def run_one_case( last_gen_throughput = -1 acc_length = -1 else: - response = requests.get(url + "/get_server_info", timeout=DEFAULT_TIMEOUT) + response = requests.get(url + "/server_info", timeout=DEFAULT_TIMEOUT) response.raise_for_status() server_info = response.json() internal_state = server_info.get("internal_states", [{}]) @@ -793,7 +793,7 @@ def run_benchmark_internal( skip_max_running_requests_threshold = float("inf") else: model_name = None - response = requests.get(base_url + "/get_server_info", timeout=DEFAULT_TIMEOUT) + response = requests.get(base_url + "/server_info", timeout=DEFAULT_TIMEOUT) response.raise_for_status() server_info = response.json() if "tokenizer_path" in server_info: diff --git a/python/sglang/test/kits/cache_hit_kit.py b/python/sglang/test/kits/cache_hit_kit.py index 81895eff0..5e1c9172c 100644 --- a/python/sglang/test/kits/cache_hit_kit.py +++ b/python/sglang/test/kits/cache_hit_kit.py @@ -221,7 +221,7 @@ async def _send_round( def _get_page_size(base_url: str) -> int: """Query server for page_size used by radix cache.""" try: - resp = requests.get(f"{base_url}/get_server_info", timeout=10) + resp = requests.get(f"{base_url}/server_info", timeout=10) resp.raise_for_status() info = resp.json() return info.get("page_size", 1) diff --git a/python/sglang/test/kl_test_utils.py b/python/sglang/test/kl_test_utils.py index 116f0ad7e..b3c90caae 100644 --- a/python/sglang/test/kl_test_utils.py +++ b/python/sglang/test/kl_test_utils.py @@ -208,7 +208,7 @@ def test_input_output_logprobs_match_helper( def test_input_output_logprobs_match_prefill_cache_hit_helper( base_url, ACC_THRESHOLDS, model_name, max_samples=None, max_new_tokens=8192 ): - server_info = requests.get(base_url + "/get_server_info").json() + server_info = requests.get(base_url + "/server_info").json() if server_info["disable_radix_cache"]: print("Radix cache is disabled, skipping test") return @@ -261,7 +261,7 @@ def test_input_output_logprobs_match_prefill_cache_hit_helper( def test_input_output_logprobs_match_decode_cache_hit_helper( base_url, ACC_THRESHOLDS, model_name, max_samples=None, max_new_tokens=8192 ): - server_info = requests.get(base_url + "/get_server_info").json() + server_info = requests.get(base_url + "/server_info").json() if server_info["disable_radix_cache"]: print("Radix cache is disabled, skipping test") return diff --git a/python/sglang/test/nightly_utils.py b/python/sglang/test/nightly_utils.py index ac69fabb7..2a9d01f2e 100644 --- a/python/sglang/test/nightly_utils.py +++ b/python/sglang/test/nightly_utils.py @@ -324,7 +324,7 @@ class NightlyBenchmarkRunner: The average speculative decoding accept length, or None if not available. """ try: - response = requests.get(f"{self.base_url}/get_server_info", timeout=10) + response = requests.get(f"{self.base_url}/server_info", timeout=10) if response.status_code == 200: server_info = response.json() internal_states = server_info.get("internal_states", []) diff --git a/scripts/playground/bench_speculative.py b/scripts/playground/bench_speculative.py index 806699f71..5373df516 100644 --- a/scripts/playground/bench_speculative.py +++ b/scripts/playground/bench_speculative.py @@ -119,7 +119,7 @@ def send_one_batch(base_url, num_prompts, batch_size, processor, is_multimodal): acc_length = results["accept_length"] or 1.0 avg_output_token = results["total_output_tokens"] / results["completed"] - server_info = requests.get(base_url + "/get_server_info").json() + server_info = requests.get(base_url + "/server_info").json() # We use 20% percentile instead of median on purpose step_time = np.percentile( server_info["internal_states"][0]["step_time_dict"][str(batch_size)], 20 diff --git a/sgl-model-gateway/README.md b/sgl-model-gateway/README.md index 4c4f92da0..046cf352a 100644 --- a/sgl-model-gateway/README.md +++ b/sgl-model-gateway/README.md @@ -407,7 +407,7 @@ Use upstream SGLang binaries to start dedicated worker processes. ### Worker Lifecycle & Job Queue - `JobQueue` handles asynchronous add/remove operations to avoid blocking clients. -- `WorkerManager` inspects worker metadata (`/get_server_info`, `/get_model_info`), tracks load, and exposes `flush_cache` and `get_loads`. +- `WorkerManager` inspects worker metadata (`/server_info`, `/get_model_info`), tracks load, and exposes `flush_cache` and `get_loads`. - Per-worker circuit breakers and health probes keep the registry healthy; load monitor feeds metrics to cache-aware and power-of-two policies. ### Administrative & Worker APIs diff --git a/sgl-model-gateway/bindings/python/src/sglang_router/mini_lb.py b/sgl-model-gateway/bindings/python/src/sglang_router/mini_lb.py index f5fd0b5a7..11ef2f4c6 100644 --- a/sgl-model-gateway/bindings/python/src/sglang_router/mini_lb.py +++ b/sgl-model-gateway/bindings/python/src/sglang_router/mini_lb.py @@ -269,6 +269,8 @@ async def flush_cache(): return Response(status_code=200) +# TODO: Remove `/get_server_info` alias after one release-cycle deprecation window. +@app.get("/server_info") @app.get("/get_server_info") async def get_server_info(): prefill_infos = [] @@ -277,10 +279,10 @@ async def get_server_info(): async with aiohttp.ClientSession() as session: for server in lb.prefill_urls: - server_info = await session.get(f"{server}/get_server_info") + server_info = await session.get(f"{server}/server_info") prefill_infos.append(await server_info.json()) for server in lb.decode_urls: - server_info = await session.get(f"{server}/get_server_info") + server_info = await session.get(f"{server}/server_info") info_json = await server_info.json() decode_infos.append(info_json) # Extract internal_states from decode servers diff --git a/sgl-model-gateway/src/routers/http/pd_router.rs b/sgl-model-gateway/src/routers/http/pd_router.rs index 9bcf06c9d..a939b6427 100644 --- a/sgl-model-gateway/src/routers/http/pd_router.rs +++ b/sgl-model-gateway/src/routers/http/pd_router.rs @@ -1223,7 +1223,7 @@ impl RouterTrait for PDRouter { async fn get_server_info(&self, _req: Request) -> Response { // Get info from the first decode server to match sglang's server info format // Note: We use decode workers for server info to match expected format - self.proxy_to_first_prefill_worker("get_server_info", None) + self.proxy_to_first_prefill_worker("server_info", None) .await } diff --git a/sgl-model-gateway/src/routers/http/router.rs b/sgl-model-gateway/src/routers/http/router.rs index 0fbf2e422..b02f6638d 100644 --- a/sgl-model-gateway/src/routers/http/router.rs +++ b/sgl-model-gateway/src/routers/http/router.rs @@ -724,7 +724,7 @@ impl RouterTrait for Router { } async fn get_server_info(&self, req: Request) -> Response { - self.proxy_get_request(req, "get_server_info").await + self.proxy_get_request(req, "server_info").await } async fn get_models(&self, req: Request) -> Response { diff --git a/sgl-model-gateway/src/server.rs b/sgl-model-gateway/src/server.rs index 4cea623de..db23d0aad 100644 --- a/sgl-model-gateway/src/server.rs +++ b/sgl-model-gateway/src/server.rs @@ -610,6 +610,8 @@ pub fn build_app( .route("/engine_metrics", get(engine_metrics)) .route("/v1/models", get(v1_models)) .route("/get_model_info", get(get_model_info)) + .route("/server_info", get(get_server_info)) + // TODO: Remove `/get_server_info` alias after one release-cycle deprecation window. .route("/get_server_info", get(get_server_info)); // Build admin routes with control plane auth if configured, otherwise use simple API key auth diff --git a/sgl-model-gateway/tests/api/api_endpoints_test.rs b/sgl-model-gateway/tests/api/api_endpoints_test.rs index 7a0d36676..6e6ff125e 100644 --- a/sgl-model-gateway/tests/api/api_endpoints_test.rs +++ b/sgl-model-gateway/tests/api/api_endpoints_test.rs @@ -314,7 +314,7 @@ mod model_info_tests { let req = Request::builder() .method("GET") - .uri("/get_server_info") + .uri("/server_info") .body(Body::empty()) .unwrap(); @@ -445,7 +445,7 @@ mod model_info_tests { let req = Request::builder() .method("GET") - .uri("/get_server_info") + .uri("/server_info") .body(Body::empty()) .unwrap(); let resp = app.clone().oneshot(req).await.unwrap(); diff --git a/sgl-model-gateway/tests/common/mock_worker.rs b/sgl-model-gateway/tests/common/mock_worker.rs index 23d6bb6f5..166fc9d83 100755 --- a/sgl-model-gateway/tests/common/mock_worker.rs +++ b/sgl-model-gateway/tests/common/mock_worker.rs @@ -82,7 +82,7 @@ impl MockWorker { let app = Router::new() .route("/health", get(health_handler)) .route("/health_generate", get(health_generate_handler)) - .route("/get_server_info", get(server_info_handler)) + .route("/server_info", get(server_info_handler)) .route("/get_model_info", get(model_info_handler)) .route("/generate", post(generate_handler)) .route("/v1/chat/completions", post(chat_completions_handler)) diff --git a/sgl-model-gateway/tests/common/tls_mock_worker.rs b/sgl-model-gateway/tests/common/tls_mock_worker.rs index 270866aa1..36a6c542d 100644 --- a/sgl-model-gateway/tests/common/tls_mock_worker.rs +++ b/sgl-model-gateway/tests/common/tls_mock_worker.rs @@ -101,7 +101,7 @@ impl TlsMockWorker { let app = Router::new() .route("/health", get(health_handler)) .route("/health_generate", get(health_generate_handler)) - .route("/get_server_info", get(server_info_handler)) + .route("/server_info", get(server_info_handler)) .route("/generate", post(generate_handler)) .route("/v1/chat/completions", post(chat_completions_handler)) .with_state(config); diff --git a/sgl-model-gateway/tests/routing/test_pd_routing.rs b/sgl-model-gateway/tests/routing/test_pd_routing.rs index 185347472..b6c69576f 100644 --- a/sgl-model-gateway/tests/routing/test_pd_routing.rs +++ b/sgl-model-gateway/tests/routing/test_pd_routing.rs @@ -765,7 +765,7 @@ mod pd_routing_unit_tests { let implemented_endpoints = vec![ ("/health", "GET", true), ("/health_generate", "GET", true), // Note: Python uses POST, we use GET - ("/get_server_info", "GET", true), + ("/server_info", "GET", true), ("/v1/models", "GET", true), ("/get_model_info", "GET", true), ("/generate", "POST", true), diff --git a/test/registered/4-gpu-models/test_qwen35_models.py b/test/registered/4-gpu-models/test_qwen35_models.py index f088c8242..562d201f2 100644 --- a/test/registered/4-gpu-models/test_qwen35_models.py +++ b/test/registered/4-gpu-models/test_qwen35_models.py @@ -149,7 +149,7 @@ class TestQwen35FP4MTP(CustomTestCase): print(f"{metrics=}") self.assertGreaterEqual(metrics["score"], ACC_THRESHOLDS[self.model]["gsm8k"]) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -226,7 +226,7 @@ class TestQwen35FP4MTPV2(CustomTestCase): print(f"{metrics=}") self.assertGreaterEqual(metrics["score"], ACC_THRESHOLDS[self.model]["gsm8k"]) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/8-gpu-models/test_deepseek_v32_mtp.py b/test/registered/8-gpu-models/test_deepseek_v32_mtp.py index d32cabcaf..ef1e34b41 100644 --- a/test/registered/8-gpu-models/test_deepseek_v32_mtp.py +++ b/test/registered/8-gpu-models/test_deepseek_v32_mtp.py @@ -76,7 +76,7 @@ class TestDeepseekV32DPMTP(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -163,7 +163,7 @@ class TestDeepseekV32DPMTPV2(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -246,7 +246,7 @@ class TestDeepseekV32TPMTP(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -330,7 +330,7 @@ class TestDeepseekV32TPMTPV2(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/8-gpu-models/test_deepseek_v3_mtp.py b/test/registered/8-gpu-models/test_deepseek_v3_mtp.py index 82cb22285..48e0847ac 100644 --- a/test/registered/8-gpu-models/test_deepseek_v3_mtp.py +++ b/test/registered/8-gpu-models/test_deepseek_v3_mtp.py @@ -72,7 +72,7 @@ class TestDeepseekV3MTP(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/accuracy/mi30x/test_deepseek_v32_mtp_eval_amd.py b/test/registered/amd/accuracy/mi30x/test_deepseek_v32_mtp_eval_amd.py index 6676ab612..1ffa71a1f 100644 --- a/test/registered/amd/accuracy/mi30x/test_deepseek_v32_mtp_eval_amd.py +++ b/test/registered/amd/accuracy/mi30x/test_deepseek_v32_mtp_eval_amd.py @@ -106,7 +106,7 @@ class TestDeepseekV32TPMTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/accuracy/mi35x/test_deepseek_v32_mtp_eval_mi35x.py b/test/registered/amd/accuracy/mi35x/test_deepseek_v32_mtp_eval_mi35x.py index 09a012043..dad040a30 100644 --- a/test/registered/amd/accuracy/mi35x/test_deepseek_v32_mtp_eval_mi35x.py +++ b/test/registered/amd/accuracy/mi35x/test_deepseek_v32_mtp_eval_mi35x.py @@ -108,7 +108,7 @@ class TestDeepseekV32TPMTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_deepseek_r1_mxfp4_8gpu.py b/test/registered/amd/test_deepseek_r1_mxfp4_8gpu.py index 28249e706..04d4f6efb 100644 --- a/test/registered/amd/test_deepseek_r1_mxfp4_8gpu.py +++ b/test/registered/amd/test_deepseek_r1_mxfp4_8gpu.py @@ -135,7 +135,7 @@ class TestDeepseekR1MXFP4MTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_deepseek_v32_mtp.py b/test/registered/amd/test_deepseek_v32_mtp.py index 87e4e6923..69587bdf6 100644 --- a/test/registered/amd/test_deepseek_v32_mtp.py +++ b/test/registered/amd/test_deepseek_v32_mtp.py @@ -87,7 +87,7 @@ class TestDeepseekV32DPMTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -179,7 +179,7 @@ class TestDeepseekV32TPMTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_deepseek_v3_mtp.py b/test/registered/amd/test_deepseek_v3_mtp.py index 291909474..0a9f94090 100644 --- a/test/registered/amd/test_deepseek_v3_mtp.py +++ b/test/registered/amd/test_deepseek_v3_mtp.py @@ -72,7 +72,7 @@ class TestDeepseekV3MTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_deepseek_v3_mtp_kv_fp8.py b/test/registered/amd/test_deepseek_v3_mtp_kv_fp8.py index a62eadf7a..949b74348 100644 --- a/test/registered/amd/test_deepseek_v3_mtp_kv_fp8.py +++ b/test/registered/amd/test_deepseek_v3_mtp_kv_fp8.py @@ -76,7 +76,7 @@ class TestDeepseekV3MTPKvFp8(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_moriep_small.py b/test/registered/amd/test_moriep_small.py index 3eca8ce27..76ccb42d6 100644 --- a/test/registered/amd/test_moriep_small.py +++ b/test/registered/amd/test_moriep_small.py @@ -145,7 +145,7 @@ class TestMTP(CustomTestCase): print(f"{metrics=}") self.assertGreaterEqual(metrics["accuracy"], 0.92) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -397,7 +397,7 @@ class TestMTPwithTBONormal(CustomTestCase): print(f"{metrics=}") self.assertGreaterEqual(metrics["accuracy"], 0.92) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -457,7 +457,7 @@ class TestMTPwithTBOLowLatency(CustomTestCase): print(f"{metrics=}") self.assertGreaterEqual(metrics["accuracy"], 0.92) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/amd/test_qwen3_coder_next_8gpu.py b/test/registered/amd/test_qwen3_coder_next_8gpu.py index a8631af6e..b4181273d 100644 --- a/test/registered/amd/test_qwen3_coder_next_8gpu.py +++ b/test/registered/amd/test_qwen3_coder_next_8gpu.py @@ -146,7 +146,7 @@ class TestQwen3CoderNextMTP(CustomTestCase): metrics = run_eval_few_shot_gsm8k(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/ascend/basic_function/parameter/test_npu_warmups.py b/test/registered/ascend/basic_function/parameter/test_npu_warmups.py index 7b1df16af..da6780374 100644 --- a/test/registered/ascend/basic_function/parameter/test_npu_warmups.py +++ b/test/registered/ascend/basic_function/parameter/test_npu_warmups.py @@ -64,7 +64,7 @@ class TestAscendWarmups(CustomTestCase): def test_warmups_with_voice_chat(self): # Call the get_server_info API to verify that the warmups parameter configuration takes effect. - response = requests.get(f"{DEFAULT_URL_FOR_TEST}/get_server_info") + response = requests.get(f"{DEFAULT_URL_FOR_TEST}/server_info") self.assertEqual(response.status_code, 200) self.assertEqual("voice_chat", response.json().get("warmups")) diff --git a/test/registered/attention/test_hybrid_attn_backend.py b/test/registered/attention/test_hybrid_attn_backend.py index 9e811fe10..cb41c0cbd 100644 --- a/test/registered/attention/test_hybrid_attn_backend.py +++ b/test/registered/attention/test_hybrid_attn_backend.py @@ -92,7 +92,7 @@ class TestHybridAttnBackendBase(CustomTestCase): self.assertGreater(metrics["score"], self.accuracy_threshold) if self.speculative_decode: - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/core/test_srt_endpoint.py b/test/registered/core/test_srt_endpoint.py index 46c5853a6..22e3b468f 100644 --- a/test/registered/core/test_srt_endpoint.py +++ b/test/registered/core/test_srt_endpoint.py @@ -500,7 +500,7 @@ class TestSRTEndpoint(CustomTestCase): self.assertEqual(send_and_check_cached_tokens(range(0, 11000)), 10000) def test_get_server_info(self): - response = requests.get(self.base_url + "/get_server_info") + response = requests.get(self.base_url + "/server_info") response_json = response.json() max_total_num_tokens = response_json["max_total_num_tokens"] @@ -630,7 +630,7 @@ class TestSRTEndpoint(CustomTestCase): tp = ThreadPoolExecutor(max_workers=30) def s(): - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") server_info.json() futures = [] diff --git a/test/registered/distributed/test_data_parallelism.py b/test/registered/distributed/test_data_parallelism.py index b1fcecd54..bb3eb29c7 100644 --- a/test/registered/distributed/test_data_parallelism.py +++ b/test/registered/distributed/test_data_parallelism.py @@ -57,13 +57,13 @@ class TestDataParallelism(CustomTestCase, GSM8KMixin): assert response.status_code == 200 def test_get_memory_pool_size(self): - # use `get_server_info` instead since `get_memory_pool_size` is merged into `get_server_info` - response = requests.get(self.base_url + "/get_server_info") + # use `server_info` instead since `get_memory_pool_size` is merged into `server_info` + response = requests.get(self.base_url + "/server_info") assert response.status_code == 200 time.sleep(1) - response = requests.get(self.base_url + "/get_server_info") + response = requests.get(self.base_url + "/server_info") assert response.status_code == 200 diff --git a/test/registered/distributed/test_dp_attention.py b/test/registered/distributed/test_dp_attention.py index f991467f8..077a0327a 100644 --- a/test/registered/distributed/test_dp_attention.py +++ b/test/registered/distributed/test_dp_attention.py @@ -167,7 +167,7 @@ class TestDPAttentionDP2TP2DeepseekV3MTP( self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/distributed/test_dp_attention_large.py b/test/registered/distributed/test_dp_attention_large.py index 47210e603..48cdee862 100644 --- a/test/registered/distributed/test_dp_attention_large.py +++ b/test/registered/distributed/test_dp_attention_large.py @@ -127,7 +127,7 @@ class TestDPAttentionDP2TP2DeepseekV3MTP( self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/ep/test_deepep_large.py b/test/registered/ep/test_deepep_large.py index 493f05581..a8bb9b8a0 100644 --- a/test/registered/ep/test_deepep_large.py +++ b/test/registered/ep/test_deepep_large.py @@ -148,7 +148,7 @@ class TestDeepseekMTP(CustomTestCase): self.assertGreater(metrics["score"], 0.92) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/ep/test_deepep_small.py b/test/registered/ep/test_deepep_small.py index 179ed576f..d89670528 100644 --- a/test/registered/ep/test_deepep_small.py +++ b/test/registered/ep/test_deepep_small.py @@ -412,7 +412,7 @@ class TestMTP(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -486,7 +486,7 @@ class TestMTPWithTBO(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -562,7 +562,7 @@ class TestMTPWithTPAttnAndTBO(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/mla/test_mla_deepseek_v3.py b/test/registered/mla/test_mla_deepseek_v3.py index 1ab95e75a..e1cf2ba83 100644 --- a/test/registered/mla/test_mla_deepseek_v3.py +++ b/test/registered/mla/test_mla_deepseek_v3.py @@ -199,7 +199,7 @@ class TestDeepseekV3MTP(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/mla/test_mla_flashinfer.py b/test/registered/mla/test_mla_flashinfer.py index 773b0a3b1..5bd665805 100644 --- a/test/registered/mla/test_mla_flashinfer.py +++ b/test/registered/mla/test_mla_flashinfer.py @@ -115,7 +115,7 @@ class TestFlashinferMLAMTP(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info").json() + server_info = requests.get(self.base_url + "/server_info").json() avg_spec_accept_length = server_info["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/mla/test_mla_int8_deepseek_v3.py b/test/registered/mla/test_mla_int8_deepseek_v3.py index bd1991030..1faf4846e 100644 --- a/test/registered/mla/test_mla_int8_deepseek_v3.py +++ b/test/registered/mla/test_mla_int8_deepseek_v3.py @@ -117,7 +117,7 @@ class TestDeepseekV3MTPChannelInt8(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -221,7 +221,7 @@ class TestDeepseekV3MTPBlockInt8(CustomTestCase): self.assertGreater(metrics["score"], 0.60) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/quant/test_deepseek_v32_fp4_mtp_4gpu.py b/test/registered/quant/test_deepseek_v32_fp4_mtp_4gpu.py index 2480e3b4f..32eeb9e9b 100644 --- a/test/registered/quant/test_deepseek_v32_fp4_mtp_4gpu.py +++ b/test/registered/quant/test_deepseek_v32_fp4_mtp_4gpu.py @@ -84,7 +84,7 @@ class TestDeepseekV32FP4DPSpecV2(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -175,7 +175,7 @@ class TestDeepseekV32FP4TPSpecV2(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/quant/test_w4a8_deepseek_v3.py b/test/registered/quant/test_w4a8_deepseek_v3.py index 90c59fd40..f30e16d2a 100644 --- a/test/registered/quant/test_w4a8_deepseek_v3.py +++ b/test/registered/quant/test_w4a8_deepseek_v3.py @@ -106,7 +106,7 @@ class TestDeepseekV3W4Afp8Mtp(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/spec/eagle/test_eagle_dp_attention.py b/test/registered/spec/eagle/test_eagle_dp_attention.py index 9758b50ae..dc20b3981 100644 --- a/test/registered/spec/eagle/test_eagle_dp_attention.py +++ b/test/registered/spec/eagle/test_eagle_dp_attention.py @@ -87,7 +87,7 @@ class TestEAGLE3EngineDPAttention(CustomTestCase): metrics = run_eval(args) print(f"{metrics=}") - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") server_data = server_info.json() # Try to get avg_spec_accept_length diff --git a/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py b/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py index d1270fbaf..407004dc0 100644 --- a/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py +++ b/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py @@ -33,7 +33,7 @@ def test_gsm8k(base_url: str, model: str): num_threads=128, ) metrics = run_eval(args) - server_info = requests.get(base_url + "/get_server_info") + server_info = requests.get(base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] diff --git a/test/registered/spec/test_standalone_speculative_decoding.py b/test/registered/spec/test_standalone_speculative_decoding.py index 2b3a1d8a1..f74bc31e4 100644 --- a/test/registered/spec/test_standalone_speculative_decoding.py +++ b/test/registered/spec/test_standalone_speculative_decoding.py @@ -113,7 +113,7 @@ class TestStandaloneSpeculativeDecodingBase(CustomTestCase): metric_key = "score" self.assertGreater(metrics[metric_key], self.accuracy_threshold) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ] @@ -176,7 +176,7 @@ class TestStandaloneV2SpeculativeDecodingBase(CustomTestCase): metric_key = "score" self.assertGreater(metrics[metric_key], self.accuracy_threshold) - server_info = requests.get(self.base_url + "/get_server_info") + server_info = requests.get(self.base_url + "/server_info") avg_spec_accept_length = server_info.json()["internal_states"][0][ "avg_spec_accept_length" ]