mirror of
https://github.com/tiennm99/litellm.git
synced 2026-08-23 22:27:10 +00:00
Merge pull request #22497 from giulio-leone/fix/featherless-ai-api-key
fix(featherless_ai): use correct FEATHERLESS_AI_API_KEY env var name
This commit is contained in:
@@ -103,10 +103,15 @@ class FeatherlessAIConfig(OpenAIGPTConfig):
|
||||
# FeatherlessAI is openai compatible, set to custom_openai and use FeatherlessAI's endpoint
|
||||
api_base = (
|
||||
api_base
|
||||
or get_secret_str("FEATHERLESS_AI_API_BASE")
|
||||
or get_secret_str("FEATHERLESS_API_BASE")
|
||||
or "https://api.featherless.ai/v1"
|
||||
)
|
||||
dynamic_api_key = api_key or get_secret_str("FEATHERLESS_API_KEY")
|
||||
dynamic_api_key = (
|
||||
api_key
|
||||
or get_secret_str("FEATHERLESS_AI_API_KEY")
|
||||
or get_secret_str("FEATHERLESS_API_KEY")
|
||||
)
|
||||
return api_base, dynamic_api_key
|
||||
|
||||
def validate_environment(
|
||||
|
||||
+39
-2
@@ -7,8 +7,6 @@ Featherless AI is an OpenAI-compatible provider with a few customizations.
|
||||
|
||||
import os
|
||||
import sys
|
||||
from typing import Dict, List, Optional
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -149,6 +147,45 @@ class TestFeatherlessAIConfig:
|
||||
)
|
||||
assert "Featherless AI doesn't support tools=" in str(excinfo.value)
|
||||
|
||||
def test_get_provider_info_with_featherless_ai_api_key(self, monkeypatch):
|
||||
"""Test that FEATHERLESS_AI_API_KEY env var is picked up correctly"""
|
||||
config = FeatherlessAIConfig()
|
||||
for key in ("FEATHERLESS_AI_API_KEY", "FEATHERLESS_API_KEY",
|
||||
"FEATHERLESS_AI_API_BASE", "FEATHERLESS_API_BASE"):
|
||||
monkeypatch.delenv(key, raising=False)
|
||||
monkeypatch.setenv("FEATHERLESS_AI_API_KEY", "key-from-ai-env")
|
||||
api_base, api_key = config._get_openai_compatible_provider_info(
|
||||
api_base=None, api_key=None
|
||||
)
|
||||
assert api_key == "key-from-ai-env"
|
||||
assert api_base == "https://api.featherless.ai/v1"
|
||||
|
||||
def test_get_provider_info_with_legacy_featherless_api_key(self, monkeypatch):
|
||||
"""Test that legacy FEATHERLESS_API_KEY env var still works"""
|
||||
config = FeatherlessAIConfig()
|
||||
for key in ("FEATHERLESS_AI_API_KEY", "FEATHERLESS_API_KEY",
|
||||
"FEATHERLESS_AI_API_BASE", "FEATHERLESS_API_BASE"):
|
||||
monkeypatch.delenv(key, raising=False)
|
||||
monkeypatch.setenv("FEATHERLESS_API_KEY", "key-from-legacy-env")
|
||||
api_base, api_key = config._get_openai_compatible_provider_info(
|
||||
api_base=None, api_key=None
|
||||
)
|
||||
assert api_key == "key-from-legacy-env"
|
||||
assert api_base == "https://api.featherless.ai/v1"
|
||||
|
||||
def test_get_provider_info_prefers_featherless_ai_key_over_legacy(self, monkeypatch):
|
||||
"""Test that FEATHERLESS_AI_API_KEY takes precedence over FEATHERLESS_API_KEY"""
|
||||
config = FeatherlessAIConfig()
|
||||
for key in ("FEATHERLESS_AI_API_KEY", "FEATHERLESS_API_KEY",
|
||||
"FEATHERLESS_AI_API_BASE", "FEATHERLESS_API_BASE"):
|
||||
monkeypatch.delenv(key, raising=False)
|
||||
monkeypatch.setenv("FEATHERLESS_AI_API_KEY", "preferred-key")
|
||||
monkeypatch.setenv("FEATHERLESS_API_KEY", "legacy-key")
|
||||
_, api_key = config._get_openai_compatible_provider_info(
|
||||
api_base=None, api_key=None
|
||||
)
|
||||
assert api_key == "preferred-key"
|
||||
|
||||
def test_default_api_base(self):
|
||||
"""Test that default API base is used when none is provided"""
|
||||
config = FeatherlessAIConfig()
|
||||
|
||||
Reference in New Issue
Block a user