fix(anthropic.py): drop unsupported non-whitespace character value when calling anthropic with stop sequences

Fixes https://github.com/BerriAI/litellm/issues/3286
This commit is contained in:
Krrish Dholakia 2024-05-03 16:59:49 -07:00
parent f7eee60943
commit 0b9fa53e3e

View file

@ -84,6 +84,48 @@ class AnthropicConfig:
and v is not None
}
def get_supported_openai_params(self):
return [
"stream",
"stop",
"temperature",
"top_p",
"max_tokens",
"tools",
"tool_choice",
]
def map_openai_params(self, non_default_params: dict, optional_params: dict):
for param, value in non_default_params.items():
if param == "max_tokens":
optional_params["max_tokens"] = value
if param == "tools":
optional_params["tools"] = value
if param == "stream":
optional_params["stream"] = value
if param == "stop":
if isinstance(value, str):
if (
value == "\n"
): # anthropic doesn't allow whitespace characters as stop-sequences
continue
value = [value]
elif isinstance(value, list):
new_v = []
for v in value:
if (
v == "\n"
): # anthropic doesn't allow whitespace characters as stop-sequences
continue
new_v.append(v)
value = new_v
optional_params["stop_sequences"] = value
if param == "temperature":
optional_params["temperature"] = value
if param == "top_p":
optional_params["top_p"] = value
return optional_params
# makes headers for API call
def validate_environment(api_key, user_headers):