diff --git a/litellm/tests/test_get_optional_params_functions_not_supported.py b/litellm/tests/test_get_optional_params_functions_not_supported.py new file mode 100644 index 000000000..2abfbc41f --- /dev/null +++ b/litellm/tests/test_get_optional_params_functions_not_supported.py @@ -0,0 +1,9 @@ +import litellm +from litellm import get_optional_params + +litellm.add_function_to_prompt = True +optional_params = get_optional_params( + tools= [{'type': 'function', 'function': {'description': 'Get the current weather in a given location', 'name': 'get_current_weather', 'parameters': {'type': 'object', 'properties': {'location': {'type': 'string', 'description': 'The city and state, e.g. San Francisco, CA'}, 'unit': {'type': 'string', 'enum': ['celsius', 'fahrenheit']}}, 'required': ['location']}}}], + tool_choice= 'auto', +) +assert optional_params is not None \ No newline at end of file diff --git a/litellm/utils.py b/litellm/utils.py index 75d6f8b7f..c0241f1c3 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -5769,7 +5769,7 @@ def get_optional_params( optional_params["extra_body"] = extra_body else: # if user passed in non-default kwargs for specific providers/models, pass them along - for k in passed_params.keys(): + for k in list(passed_params.keys()): if k not in default_params.keys(): optional_params[k] = passed_params[k] print_verbose(f"Final returned optional params: {optional_params}")