From 939d7731da025d8a3b41b2bcb7224e815d258aae Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Sat, 18 Mar 2023 03:30:30 -0600 Subject: [PATCH] Fix-up Search Actor GPT's response for decoding it as valid JSON --- src/khoj/processor/conversation/gpt.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/khoj/processor/conversation/gpt.py b/src/khoj/processor/conversation/gpt.py index b601bced..16fcc33d 100644 --- a/src/khoj/processor/conversation/gpt.py +++ b/src/khoj/processor/conversation/gpt.py @@ -167,7 +167,13 @@ Q: {text} # Extract, Clean Message from GPT's Response response_text = response["choices"][0]["text"] try: - questions = json.loads(response_text.strip(empty_escape_sequences)) + questions = json.loads( + # Clean response to increase likelihood of valid JSON. E.g replace ' with " to enclose strings + response_text.strip(empty_escape_sequences) + .replace("['", '["') + .replace("']", '"]') + .replace("', '", '", "') + ) except json.decoder.JSONDecodeError: logger.warn(f"GPT returned invalid JSON. Set question to empty list.\n{response_text}") questions = [text]