fix(openai_mixin): no yelling for model listing if API keys are not provided

This commit is contained in:
Ashwin Bharambe 2025-10-16 09:58:45 -07:00
parent 07fc8013eb
commit 097a636768

View file

@ -168,13 +168,7 @@ class OpenAIMixin(NeedsRequestProviderData, ABC, BaseModel):
is used instead of any config API key. is used instead of any config API key.
""" """
api_key = self.get_api_key() api_key = self._get_api_key_from_config_or_provider_data()
if self.provider_data_api_key_field:
provider_data = self.get_request_provider_data()
if provider_data and getattr(provider_data, self.provider_data_api_key_field, None):
api_key = getattr(provider_data, self.provider_data_api_key_field)
if not api_key: if not api_key:
message = "API key not provided." message = "API key not provided."
if self.provider_data_api_key_field: if self.provider_data_api_key_field:
@ -187,6 +181,16 @@ class OpenAIMixin(NeedsRequestProviderData, ABC, BaseModel):
**self.get_extra_client_params(), **self.get_extra_client_params(),
) )
def _get_api_key_from_config_or_provider_data(self) -> str | None:
api_key = self.get_api_key()
if self.provider_data_api_key_field:
provider_data = self.get_request_provider_data()
if provider_data and getattr(provider_data, self.provider_data_api_key_field, None):
api_key = getattr(provider_data, self.provider_data_api_key_field)
return api_key
async def _get_provider_model_id(self, model: str) -> str: async def _get_provider_model_id(self, model: str) -> str:
""" """
Get the provider-specific model ID from the model store. Get the provider-specific model ID from the model store.
@ -387,6 +391,11 @@ class OpenAIMixin(NeedsRequestProviderData, ABC, BaseModel):
""" """
self._model_cache = {} self._model_cache = {}
api_key = self._get_api_key_from_config_or_provider_data()
if not api_key:
logger.debug(f"{self.__class__.__name__}.list_provider_model_ids() disabled because API key not provided")
return None
try: try:
iterable = await self.list_provider_model_ids() iterable = await self.list_provider_model_ids()
except Exception as e: except Exception as e: