mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
Merge pull request #4747 from BerriAI/litellm_fix_anthrpic_exception_format
[Fix + Test] anthropic raise litellm.AuthenticationError when no Anthropic API Key provided
This commit is contained in:
commit
c2f73764cb
2 changed files with 33 additions and 4 deletions
|
|
@ -475,10 +475,12 @@ class AnthropicConfig:
|
|||
|
||||
|
||||
# makes headers for API call
|
||||
def validate_environment(api_key, user_headers):
|
||||
def validate_environment(api_key, user_headers, model):
|
||||
if api_key is None:
|
||||
raise ValueError(
|
||||
"Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params"
|
||||
raise litellm.AuthenticationError(
|
||||
message="Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params. Please set `ANTHROPIC_API_KEY` in your environment vars",
|
||||
llm_provider="anthropic",
|
||||
model=model,
|
||||
)
|
||||
headers = {
|
||||
"accept": "application/json",
|
||||
|
|
@ -734,7 +736,7 @@ class AnthropicChatCompletion(BaseLLM):
|
|||
logger_fn=None,
|
||||
headers={},
|
||||
):
|
||||
headers = validate_environment(api_key, headers)
|
||||
headers = validate_environment(api_key, headers, model)
|
||||
_is_function_call = False
|
||||
messages = copy.deepcopy(messages)
|
||||
optional_params = copy.deepcopy(optional_params)
|
||||
|
|
|
|||
|
|
@ -388,6 +388,33 @@ def test_completion_openai_exception():
|
|||
# test_completion_openai_exception()
|
||||
|
||||
|
||||
def test_anthropic_openai_exception():
|
||||
# test if anthropic raises litellm.AuthenticationError
|
||||
try:
|
||||
litellm.set_verbose = True
|
||||
## Test azure call
|
||||
old_azure_key = os.environ["ANTHROPIC_API_KEY"]
|
||||
os.environ.pop("ANTHROPIC_API_KEY")
|
||||
response = completion(
|
||||
model="anthropic/claude-3-sonnet-20240229",
|
||||
messages=[{"role": "user", "content": "hello"}],
|
||||
)
|
||||
print(f"response: {response}")
|
||||
print(response)
|
||||
except litellm.AuthenticationError as e:
|
||||
os.environ["ANTHROPIC_API_KEY"] = old_azure_key
|
||||
print("Exception vars=", vars(e))
|
||||
assert (
|
||||
"Missing Anthropic API Key - A call is being made to anthropic but no key is set either in the environment variables or via params"
|
||||
in e.message
|
||||
)
|
||||
print(
|
||||
"ANTHROPIC_API_KEY: good job got the correct error for ANTHROPIC_API_KEY when key not set"
|
||||
)
|
||||
except Exception as e:
|
||||
pytest.fail(f"Error occurred: {e}")
|
||||
|
||||
|
||||
def test_completion_mistral_exception():
|
||||
# test if mistral/mistral-tiny raises openai.AuthenticationError
|
||||
try:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue