fix(utils.py): cleanup 'additionalProperties=False' for tool calling with zod

Fixes issue with zod passing in additionalProperties=False, causing vertex ai / gemini calls to fail
This commit is contained in:
Krrish Dholakia 2024-07-06 17:27:14 -07:00
parent 25a0066123
commit 20e39d6acc
6 changed files with 27 additions and 4 deletions

View file

@ -2555,6 +2555,24 @@ def get_optional_params(
message=f"Function calling is not supported by {custom_llm_provider}.",
)
if "tools" in non_default_params:
tools = non_default_params["tools"]
for (
tool
) in (
tools
): # clean out 'additionalProperties = False'. Causes vertexai/gemini OpenAI API Schema errors - https://github.com/langchain-ai/langchainjs/issues/5240
tool_function = tool.get("function", {})
parameters = tool_function.get("parameters", None)
if parameters is not None:
new_parameters = copy.deepcopy(parameters)
if (
"additionalProperties" in new_parameters
and new_parameters["additionalProperties"] is False
):
new_parameters.pop("additionalProperties", None)
tool_function["parameters"] = new_parameters
def _check_valid_arg(supported_params):
verbose_logger.debug(
f"\nLiteLLM completion() model= {model}; provider = {custom_llm_provider}"