From 3bd0a15506a15ee7c9d0e5463b607db670f0388d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucca=20Zen=C3=B3bio?= Date: Mon, 1 Jan 2024 19:50:31 -0500 Subject: [PATCH] Fix for openai multi tools input format. (#14653) Sometimes, the tool_schema is like: ` {'action_name': 'search_items', 'action': {'term': 'pizza'}}` sometimes, specially with gpt3.5 it comes like: `{'action_name': 'search_items', 'term': 'pizza'}` and it fails. This PR is a way to make it work in both scenarios. issues releated: #6624 Please make sure your PR is passing linting and testing before submitting. Run `make format`, `make lint` and `make test` to check this locally. See contribution guidelines for more information on how to write/run tests, lint, etc: https://github.com/langchain-ai/langchain/blob/master/.github/CONTRIBUTING.md If you're adding a new integration, please include: 1. a test for the integration, preferably unit tests that do not rely on network access, 2. an example notebook showing its use. It lives in `docs/extras` directory. If no one reviews your PR within a few days, please @-mention one of @baskaryan, @eyurtsev, @hwchase17. --> Co-authored-by: Lucca Zenobio --- .../langchain/agents/openai_functions_multi_agent/base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py b/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py index 026171b25e..480f102d90 100644 --- a/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py +++ b/libs/langchain/langchain/agents/openai_functions_multi_agent/base.py @@ -58,7 +58,12 @@ def _parse_ai_message(message: BaseMessage) -> Union[List[AgentAction], AgentFin final_tools: List[AgentAction] = [] for tool_schema in tools: - _tool_input = tool_schema["action"] + if "action" in tool_schema: + _tool_input = tool_schema["action"] + else: + # drop action_name from schema + _tool_input = tool_schema.copy() + del _tool_input["action_name"] function_name = tool_schema["action_name"] # HACK HACK HACK: