diff --git a/python/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py b/python/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py index 04ac8ec9ef12..066117c320f5 100644 --- a/python/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py +++ b/python/semantic_kernel/connectors/ai/google/google_ai/services/google_ai_chat_completion.py @@ -119,7 +119,7 @@ def __init__( if not client: if google_ai_settings.use_vertexai and not google_ai_settings.cloud_project_id: raise ServiceInitializationError("Project ID must be provided when use_vertexai is True.") - if not google_ai_settings.api_key: + if not google_ai_settings.use_vertexai and not google_ai_settings.api_key: raise ServiceInitializationError("The API key is required when use_vertexai is False.") super().__init__( diff --git a/python/tests/unit/connectors/ai/google/test_google_ai_chat_completion_vertex_adc.py b/python/tests/unit/connectors/ai/google/test_google_ai_chat_completion_vertex_adc.py new file mode 100644 index 000000000000..fac3bdb86b9b --- /dev/null +++ b/python/tests/unit/connectors/ai/google/test_google_ai_chat_completion_vertex_adc.py @@ -0,0 +1,22 @@ +import pytest + +from semantic_kernel.connectors.ai.google.google_ai.google_ai_settings import GoogleAISettings +from semantic_kernel.connectors.ai.google.google_ai.services.google_ai_chat_completion import ( + GoogleAIChatCompletion, +) +from semantic_kernel.exceptions.service_exceptions import ServiceInitializationError + + +def test_vertexai_does_not_require_api_key_when_adc_is_used(): + """ + When use_vertexai=True, GoogleAIChatCompletion should NOT require an API key, + because authentication is handled via Application Default Credentials (ADC). + """ + + GoogleAIChatCompletion( + gemini_model_id="models/gemini-1.5-pro", + api_key=None, + use_vertexai=True, + project_id="test-project", + region="us-central1", + )