Tachi67 commited on
Commit
c3abb01
·
1 Parent(s): c62831c

Update PlanGeneratorAtomicFlow.py

Browse files
Files changed (1) hide show
  1. PlanGeneratorAtomicFlow.py +10 -9
PlanGeneratorAtomicFlow.py CHANGED
@@ -40,12 +40,13 @@ class PlanGeneratorAtomicFlow(ChatAtomicFlow):
40
  def run(self, input_data: Dict[str, Any]) -> Dict[str, Any]:
41
  self._update_prompts_and_input(input_data)
42
  api_output = super().run(input_data)["api_output"].strip()
43
- try:
44
- response = json.loads(api_output)
45
- return response
46
- except json.decoder.JSONDecodeError:
47
- new_goal = f"Here is your previous response {api_output}, it cannot be parsed with json.loads, please fix this issue. Provide your response only in JSON format."
48
- new_input_data = input_data.copy()
49
- new_input_data['goal'] = new_goal
50
- new_api_output = super().run(new_input_data)["api_output"].strip()
51
- return json.loads(new_api_output)
 
 
40
  def run(self, input_data: Dict[str, Any]) -> Dict[str, Any]:
41
  self._update_prompts_and_input(input_data)
42
  api_output = super().run(input_data)["api_output"].strip()
43
+ while True:
44
+ api_output = super().run(input_data)["api_output"].strip()
45
+ try:
46
+ response = json.loads(api_output)
47
+ return response
48
+ except (json.decoder.JSONDecodeError, json.JSONDecodeError):
49
+ new_goal = "The previous respond cannot be parsed with json.loads. Next time, do not provide any comments or code blocks. Make sure your next response is purely json parsable."
50
+ new_input_data = input_data.copy()
51
+ new_input_data['goal'] = new_goal
52
+ input_data = new_input_data