34 lines
947 B
Python
34 lines
947 B
Python
from typing import Any, Dict
|
|
|
|
from autogpt.config import Config
|
|
from autogpt.logs import logger
|
|
from autogpt.speech import say_text
|
|
|
|
CFG = Config()
|
|
|
|
|
|
def fix_json_using_multiple_techniques(assistant_reply: str) -> Dict[Any, Any]:
|
|
from autogpt.json_fixes.parsing import (
|
|
attempt_to_fix_json_by_finding_outermost_brackets,
|
|
fix_and_parse_json,
|
|
)
|
|
|
|
# Parse and print Assistant response
|
|
assistant_reply_json = fix_and_parse_json(assistant_reply)
|
|
if assistant_reply_json == {}:
|
|
assistant_reply_json = attempt_to_fix_json_by_finding_outermost_brackets(
|
|
assistant_reply
|
|
)
|
|
|
|
if assistant_reply_json != {}:
|
|
return assistant_reply_json
|
|
|
|
logger.error(
|
|
"Error: The following AI output couldn't be converted to a JSON:\n",
|
|
assistant_reply,
|
|
)
|
|
if CFG.speak_mode:
|
|
say_text("I have received an invalid JSON response from the OpenAI API.")
|
|
|
|
return {}
|