diff --git a/langextract/factory.py b/langextract/factory.py index 21bee178..b29dd042 100644 --- a/langextract/factory.py +++ b/langextract/factory.py @@ -68,6 +68,7 @@ def _kwargs_with_environment_defaults( env_vars_by_provider = { "gemini": ("GEMINI_API_KEY", "LANGEXTRACT_API_KEY"), "gpt": ("OPENAI_API_KEY", "LANGEXTRACT_API_KEY"), + "o1": ("OPENAI_API_KEY", "LANGEXTRACT_API_KEY"), } for provider_prefix, env_vars in env_vars_by_provider.items(): diff --git a/tests/factory_test.py b/tests/factory_test.py index db365aaa..9fcac21b 100644 --- a/tests/factory_test.py +++ b/tests/factory_test.py @@ -119,6 +119,14 @@ def test_uses_openai_api_key_from_environment(self): model = factory.create_model(config) self.assertEqual(model.api_key, "env-openai-key") + @mock.patch.dict(os.environ, {"OPENAI_API_KEY": "env-openai-key"}) + def test_uses_openai_api_key_for_o1_models(self): + """Factory should use OPENAI_API_KEY from env for 'o1-*' OpenAI models.""" + config = factory.ModelConfig(model_id="o1-mini") + + model = factory.create_model(config) + self.assertEqual(model.api_key, "env-openai-key") + @mock.patch.dict( os.environ, {"LANGEXTRACT_API_KEY": "env-langextract-key"}, clear=True )