Update PlanGeneratorAtomicFlow.py
Browse files- 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 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
| 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
|