From 563e8aede10a3c4343e05457b07e946ef4f0febc Mon Sep 17 00:00:00 2001 From: LuciferDono Date: Wed, 4 Mar 2026 08:50:10 +0530 Subject: [PATCH] fix: treat empty OPENAI_BASE_URL as unset When OPENAI_BASE_URL is defined but empty, os.environ.get() returns "" instead of None, so the fallback to https://api.openai.com/v1 is skipped. Add `or None` to coerce empty strings to None in both the sync and async client constructors. Fixes #2927 --- src/openai/_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openai/_client.py b/src/openai/_client.py index 0399bbf742..5474f2c635 100644 --- a/src/openai/_client.py +++ b/src/openai/_client.py @@ -161,7 +161,7 @@ def __init__( self.websocket_base_url = websocket_base_url if base_url is None: - base_url = os.environ.get("OPENAI_BASE_URL") + base_url = os.environ.get("OPENAI_BASE_URL") or None if base_url is None: base_url = f"https://api.openai.com/v1" @@ -518,7 +518,7 @@ def __init__( self.websocket_base_url = websocket_base_url if base_url is None: - base_url = os.environ.get("OPENAI_BASE_URL") + base_url = os.environ.get("OPENAI_BASE_URL") or None if base_url is None: base_url = f"https://api.openai.com/v1"