mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-17 05:54:26 +01:00
fix(agent): Fix OneShotAgentPromptStrategy parser when using functions/tools API
Also: - Improve error message when the LLM doesn't call any tools
This commit is contained in:
@@ -327,7 +327,14 @@ class OneShotAgentPromptStrategy(PromptStrategy):
|
|||||||
f"{json.dumps(assistant_reply_dict, indent=4)}"
|
f"{json.dumps(assistant_reply_dict, indent=4)}"
|
||||||
)
|
)
|
||||||
|
|
||||||
_, errors = self.response_schema.validate_object(assistant_reply_dict)
|
response_schema = self.response_schema.copy(deep=True)
|
||||||
|
if (
|
||||||
|
self.config.use_functions_api
|
||||||
|
and response_schema.properties
|
||||||
|
and "command" in response_schema.properties
|
||||||
|
):
|
||||||
|
del response_schema.properties["command"]
|
||||||
|
_, errors = response_schema.validate_object(assistant_reply_dict)
|
||||||
if errors:
|
if errors:
|
||||||
raise InvalidAgentResponseError(
|
raise InvalidAgentResponseError(
|
||||||
"Validation of response failed:\n "
|
"Validation of response failed:\n "
|
||||||
@@ -372,7 +379,7 @@ def extract_command(
|
|||||||
"""
|
"""
|
||||||
if use_openai_functions_api:
|
if use_openai_functions_api:
|
||||||
if not assistant_reply.tool_calls:
|
if not assistant_reply.tool_calls:
|
||||||
raise InvalidAgentResponseError("No 'tool_calls' in assistant reply")
|
raise InvalidAgentResponseError("Assistant did not use any tools")
|
||||||
assistant_reply_json["command"] = {
|
assistant_reply_json["command"] = {
|
||||||
"name": assistant_reply.tool_calls[0].function.name,
|
"name": assistant_reply.tool_calls[0].function.name,
|
||||||
"args": assistant_reply.tool_calls[0].function.arguments,
|
"args": assistant_reply.tool_calls[0].function.arguments,
|
||||||
|
|||||||
Reference in New Issue
Block a user