diff options
Diffstat (limited to 'autogpts/autogpt/autogpt/json_utils/utilities.py')
-rw-r--r-- | autogpts/autogpt/autogpt/json_utils/utilities.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/autogpts/autogpt/autogpt/json_utils/utilities.py b/autogpts/autogpt/autogpt/json_utils/utilities.py index 80ef8cee3..fe203b290 100644 --- a/autogpts/autogpt/autogpt/json_utils/utilities.py +++ b/autogpts/autogpt/autogpt/json_utils/utilities.py @@ -26,10 +26,10 @@ def extract_dict_from_response(response_content: str) -> dict[str, Any]: # Response content comes from OpenAI as a Python `str(content_dict)`. # `literal_eval` does the reverse of `str(dict)`. - try: - return ast.literal_eval(response_content) - except BaseException as e: - logger.info(f"Error parsing JSON response with literal_eval {e}") - logger.debug(f"Invalid JSON received in response:\n{response_content}") - # TODO: How to raise an error here without causing the program to exit? - return {} + result = ast.literal_eval(response_content) + if not isinstance(result, dict): + raise ValueError( + f"Response '''{response_content}''' evaluated to " + f"non-dict value {repr(result)}" + ) + return result |