diff --git a/sgl-router/py_test/e2e_grpc/basic/test_openai_server.py b/sgl-router/py_test/e2e_grpc/basic/test_openai_server.py index 2a2206a3c..a3c73b95c 100644 --- a/sgl-router/py_test/e2e_grpc/basic/test_openai_server.py +++ b/sgl-router/py_test/e2e_grpc/basic/test_openai_server.py @@ -277,8 +277,7 @@ The SmartHome Mini is a compact smart home assistant available in black or white def test_model_list(self): client = openai.Client(api_key=self.api_key, base_url=self.base_url) - # TODO: Update the logic here when router /v1/models response format matching the openai api standard - models = list(client.models.list().models) + models = list(client.models.list().data) assert len(models) == 1 # assert isinstance(getattr(models[0], "max_model_len", None), int) diff --git a/sgl-router/py_test/e2e_grpc/function_call/test_tool_choice.py b/sgl-router/py_test/e2e_grpc/function_call/test_tool_choice.py index 87f4db236..4e1668527 100644 --- a/sgl-router/py_test/e2e_grpc/function_call/test_tool_choice.py +++ b/sgl-router/py_test/e2e_grpc/function_call/test_tool_choice.py @@ -70,8 +70,7 @@ class TestToolChoiceLlama32(CustomTestCase): def setUp(self): self.client = openai.Client(base_url=self.base_url, api_key=self.api_key) - # TODO: Update the logic here when router /v1/models response format matching the openai api standard - self.model_name = self.client.models.list().models[0] + self.model_name = self.client.models.list().data[0].id def _is_flaky_test(self): """Check if the current test is marked as flaky for this class""" diff --git a/sgl-router/src/routers/router_manager.rs b/sgl-router/src/routers/router_manager.rs index c3738b04c..68fcfb3bd 100644 --- a/sgl-router/src/routers/router_manager.rs +++ b/sgl-router/src/routers/router_manager.rs @@ -334,14 +334,30 @@ impl RouterTrait for RouterManager { } async fn get_models(&self, _req: Request
) -> Response { - let models = self.worker_registry.get_models(); + let model_names = self.worker_registry.get_models(); - if models.is_empty() { + if model_names.is_empty() { (StatusCode::SERVICE_UNAVAILABLE, "No models available").into_response() } else { + // Convert model names to OpenAI-compatible model objects + let models: Vec