From b4ef2599d9c166b4ce2a48cb2cfa50df852cf276 Mon Sep 17 00:00:00 2001 From: Matthew Farrellee Date: Wed, 16 Jul 2025 13:01:24 -0400 Subject: [PATCH] treat NotFound specially --- .../remote/inference/nvidia/nvidia.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/llama_stack/providers/remote/inference/nvidia/nvidia.py b/llama_stack/providers/remote/inference/nvidia/nvidia.py index 7aa21266d..cb7554523 100644 --- a/llama_stack/providers/remote/inference/nvidia/nvidia.py +++ b/llama_stack/providers/remote/inference/nvidia/nvidia.py @@ -9,7 +9,7 @@ import warnings from collections.abc import AsyncIterator from typing import Any -from openai import APIConnectionError, AsyncOpenAI, BadRequestError +from openai import APIConnectionError, AsyncOpenAI, BadRequestError, NotFoundError from llama_stack.apis.common.content_types import ( InterleavedContent, @@ -89,13 +89,20 @@ class NVIDIAInferenceAdapter(Inference, ModelRegistryHelper): self._config = config async def check_model_availability(self, model: str) -> bool: - """Check if a specific model is available from the NVIDIA API.""" + """ + Check if a specific model is available. + + :param model: The model identifier to check. + :return: True if the model is available dynamically, False otherwise. + """ try: - await self._get_client().models.retrieve(model) + await self._client.models.retrieve(model) return True - except Exception: - # If we can't retrieve the model, it's not available - return False + except NotFoundError: + logger.error(f"Model {model} is not available") + except Exception as e: + logger.error(f"Failed to check model availability: {e}") + return False @property def _client(self) -> AsyncOpenAI: