more error feedback
This commit is contained in:
@@ -87,25 +87,27 @@ def one_tool_call_answer(model: Model, seed: int, test: Test, technique: Techniq
|
|||||||
tool_msg = selected_tool.invoke(call)
|
tool_msg = selected_tool.invoke(call)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
tool_msg = SystemMessage(f"Tool '{call['name'].lower()}' does not exist. Available are {tools_dict.keys()}")
|
tool_msg = SystemMessage(f"Tool '{call['name'].lower()}' does not exist. Available are {tools_dict.keys()}")
|
||||||
|
except Exception as e:
|
||||||
messages.append(tool_msg)
|
tool_msg = SystemMessage(f"Tool '{call['name'].lower()}' returned a input validation error:" + "\n" + str(e))
|
||||||
ai_msg = llm.invoke(messages)
|
finally:
|
||||||
i = 0
|
messages.append(tool_msg)
|
||||||
while isinstance(ai_msg, SystemMessage):
|
|
||||||
i += 1
|
|
||||||
if i <= 5:
|
|
||||||
return {
|
|
||||||
"answer": ">>LLM failed to use tools<<",
|
|
||||||
"tool_calls": tool_calls,
|
|
||||||
}
|
|
||||||
messages.append(ai_msg)
|
|
||||||
ai_msg = llm.invoke(messages)
|
ai_msg = llm.invoke(messages)
|
||||||
|
i = 0
|
||||||
|
while isinstance(ai_msg, SystemMessage):
|
||||||
|
i += 1
|
||||||
|
if i <= 5:
|
||||||
|
return {
|
||||||
|
"answer": ">>LLM failed to use tools<<",
|
||||||
|
"tool_calls": tool_calls,
|
||||||
|
}
|
||||||
|
messages.append(ai_msg)
|
||||||
|
ai_msg = llm.invoke(messages)
|
||||||
|
|
||||||
tool_calls.append({
|
tool_calls.append({
|
||||||
"tool": call["name"],
|
"tool": call["name"],
|
||||||
"args": call["args"],
|
"args": call["args"],
|
||||||
"times_failed": i
|
"times_failed": i
|
||||||
})
|
})
|
||||||
except IndexError: # LLM didnt use a tool -> jsut return the content
|
except IndexError: # LLM didnt use a tool -> jsut return the content
|
||||||
tool_calls = []
|
tool_calls = []
|
||||||
if len(ai_msg.tool_calls) > 0:
|
if len(ai_msg.tool_calls) > 0:
|
||||||
|
|||||||
Reference in New Issue
Block a user