From 6f04a434c7ec145501856b7600dfc267eccf9a3e Mon Sep 17 00:00:00 2001 From: Vladimir Blagojevic Date: Wed, 11 Jun 2025 16:36:37 +0200 Subject: [PATCH 1/3] Use GEMINI_API_KEY as default env var for the key (in addition to GOOGLE_API_KEY) --- .../components/generators/google_genai/chat/chat_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/chat_generator.py b/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/chat_generator.py index b346a4d9eb..31e9367f83 100644 --- a/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/chat_generator.py +++ b/integrations/google_genai/src/haystack_integrations/components/generators/google_genai/chat/chat_generator.py @@ -230,7 +230,7 @@ def weather_function(city: str): def __init__( self, *, - api_key: Secret = Secret.from_env_var("GOOGLE_API_KEY"), + api_key: Secret = Secret.from_env_var(["GOOGLE_API_KEY", "GEMINI_API_KEY"]), model: str = "gemini-2.0-flash", generation_kwargs: Optional[Dict[str, Any]] = None, safety_settings: Optional[List[Dict[str, Any]]] = None, @@ -240,7 +240,7 @@ def __init__( """ Initialize a GoogleGenAIChatGenerator instance. - :param api_key: Google API key, defaults to the `GOOGLE_API_KEY` environment variable, + :param api_key: Google API key, defaults to the `GOOGLE_API_KEY` and `GEMINI_API_KEY` environment variables, see https://ai.google.dev/gemini-api/docs/api-key for more information. :param model: Name of the model to use (e.g., "gemini-2.0-flash") :param generation_kwargs: Configuration for generation (temperature, max_tokens, etc.) From 5d59a7f0a7f1d240d130463c621dcdbdf758cbea Mon Sep 17 00:00:00 2001 From: Vladimir Blagojevic Date: Thu, 12 Jun 2025 11:12:30 +0200 Subject: [PATCH 2/3] Add GEMINI_API_KEY env var to text/document embedder --- .../components/embedders/google_genai/document_embedder.py | 6 +++--- .../components/embedders/google_genai/text_embedder.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/document_embedder.py b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/document_embedder.py index 4f143a07e0..5b4b7d6503 100644 --- a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/document_embedder.py +++ b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/document_embedder.py @@ -39,7 +39,7 @@ class GoogleGenAIDocumentEmbedder: def __init__( self, *, - api_key: Secret = Secret.from_env_var("GOOGLE_API_KEY"), + api_key: Secret = Secret.from_env_var(["GOOGLE_API_KEY", "GEMINI_API_KEY"]), model: str = "text-embedding-004", prefix: str = "", suffix: str = "", @@ -54,8 +54,8 @@ def __init__( :param api_key: The Google API key. - You can set it with the environment variable `GOOGLE_API_KEY`, or pass it via this parameter - during initialization. + You can set it with the environment variable `GOOGLE_API_KEY` or `GEMINI_API_KEY`, or pass it via + this parameter during initialization. :param model: The name of the model to use for calculating embeddings. The default model is `text-embedding-ada-002`. diff --git a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/text_embedder.py b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/text_embedder.py index 415d5fc21d..e3693d37f3 100644 --- a/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/text_embedder.py +++ b/integrations/google_genai/src/haystack_integrations/components/embedders/google_genai/text_embedder.py @@ -39,7 +39,7 @@ class GoogleGenAITextEmbedder: def __init__( self, *, - api_key: Secret = Secret.from_env_var("GOOGLE_API_KEY"), + api_key: Secret = Secret.from_env_var(["GOOGLE_API_KEY", "GEMINI_API_KEY"]), model: str = "text-embedding-004", prefix: str = "", suffix: str = "", @@ -50,8 +50,8 @@ def __init__( :param api_key: The Google API key. - You can set it with the environment variable `GOOGLE_API_KEY`, or pass it via this parameter - during initialization. + You can set it with the environment variable `GOOGLE_API_KEY` or `GEMINI_API_KEY`, or pass it via + this parameter during initialization. :param model: The name of the model to use for calculating embeddings. The default model is `text-embedding-004`. From ad22bb2733bcc109e8d74a0376e3e7731c60f0f7 Mon Sep 17 00:00:00 2001 From: Vladimir Blagojevic Date: Thu, 12 Jun 2025 12:14:27 +0200 Subject: [PATCH 3/3] Fix tests to account for GEMINI_API_KEY --- integrations/google_genai/tests/test_document_embedder.py | 2 +- integrations/google_genai/tests/test_text_embedder.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/integrations/google_genai/tests/test_document_embedder.py b/integrations/google_genai/tests/test_document_embedder.py index 31e55baf43..550756d016 100644 --- a/integrations/google_genai/tests/test_document_embedder.py +++ b/integrations/google_genai/tests/test_document_embedder.py @@ -102,7 +102,7 @@ def test_to_dict(self, monkeypatch): "progress_bar": True, "meta_fields_to_embed": [], "embedding_separator": "\n", - "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY"], "strict": True}, + "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY", "GEMINI_API_KEY"], "strict": True}, "config": {"task_type": "SEMANTIC_SIMILARITY"}, }, } diff --git a/integrations/google_genai/tests/test_text_embedder.py b/integrations/google_genai/tests/test_text_embedder.py index bb700527be..99a784c806 100644 --- a/integrations/google_genai/tests/test_text_embedder.py +++ b/integrations/google_genai/tests/test_text_embedder.py @@ -57,7 +57,7 @@ def test_to_dict(self, monkeypatch): assert data == { "type": "haystack_integrations.components.embedders.google_genai.text_embedder.GoogleGenAITextEmbedder", "init_parameters": { - "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY"], "strict": True}, + "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY", "GEMINI_API_KEY"], "strict": True}, "model": "text-embedding-004", "prefix": "", "suffix": "", @@ -91,7 +91,7 @@ def test_from_dict(self, monkeypatch): data = { "type": "haystack_integrations.components.embedders.google_genai.text_embedder.GoogleGenAITextEmbedder", "init_parameters": { - "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY"], "strict": True}, + "api_key": {"type": "env_var", "env_vars": ["GOOGLE_API_KEY", "GEMINI_API_KEY"], "strict": True}, "model": "text-embedding-004", "prefix": "", "suffix": "",