mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
fix(openai): treat empty api_key as unset for WIF resolution
This commit is contained in:
parent
e7dc0213bd
commit
ae83444a3e
2 changed files with 15 additions and 8 deletions
|
|
@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Final
|
|||
from urllib.parse import urlparse
|
||||
|
||||
import litellm
|
||||
from litellm.secret_managers.main import get_secret_str
|
||||
from litellm.secret_managers.main import get_secret_str, normalize_nonempty_secret_str
|
||||
|
||||
from .common_utils import OpenAIError
|
||||
|
||||
|
|
@ -45,7 +45,10 @@ def resolve_openai_workload_identity_config(
|
|||
api_key: str | None,
|
||||
api_base: str | None,
|
||||
) -> OpenAIWorkloadIdentityConfig | None:
|
||||
if api_key or get_secret_str("OPENAI_API_KEY"):
|
||||
static_api_key: Final = normalize_nonempty_secret_str(api_key) or normalize_nonempty_secret_str(
|
||||
get_secret_str("OPENAI_API_KEY")
|
||||
)
|
||||
if static_api_key is not None:
|
||||
return None
|
||||
effective_api_base: Final = (
|
||||
api_base or litellm.api_base or get_secret_str("OPENAI_BASE_URL") or get_secret_str("OPENAI_API_BASE")
|
||||
|
|
|
|||
|
|
@ -63,14 +63,18 @@ class TestResolveConfig:
|
|||
monkeypatch.setenv("OPENAI_API_KEY", "sk-from-env")
|
||||
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) is None
|
||||
|
||||
def test_empty_env_openai_api_key_counts_as_unset(
|
||||
self, wif_env: OpenAIWorkloadIdentityConfig, monkeypatch: pytest.MonkeyPatch
|
||||
@pytest.mark.parametrize("empty_key", ["", " "])
|
||||
def test_empty_api_key_arg_does_not_disable_wif(
|
||||
self, wif_env: OpenAIWorkloadIdentityConfig, empty_key: str
|
||||
) -> None:
|
||||
monkeypatch.setenv("OPENAI_API_KEY", "")
|
||||
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) == wif_env
|
||||
assert resolve_openai_workload_identity_config(api_key=empty_key, api_base=None) == wif_env
|
||||
|
||||
def test_empty_api_key_param_counts_as_unset(self, wif_env: OpenAIWorkloadIdentityConfig) -> None:
|
||||
assert resolve_openai_workload_identity_config(api_key="", api_base=None) == wif_env
|
||||
@pytest.mark.parametrize("empty_key", ["", " "])
|
||||
def test_empty_env_openai_api_key_does_not_disable_wif(
|
||||
self, wif_env: OpenAIWorkloadIdentityConfig, monkeypatch: pytest.MonkeyPatch, empty_key: str
|
||||
) -> None:
|
||||
monkeypatch.setenv("OPENAI_API_KEY", empty_key)
|
||||
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) == wif_env
|
||||
|
||||
def test_foreign_api_base_disables(self, wif_env: OpenAIWorkloadIdentityConfig) -> None:
|
||||
assert resolve_openai_workload_identity_config(api_key=None, api_base="https://my-vllm.internal/v1") is None
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue