|
### Structure of ReplanningFlow |
|
|
|
``` |
|
goal (info on the old plan), plan (old plan), plan_file_location |
|
| |
|
v |
|
+---------------+ |
|
| Controller | --------<<<<-----------+ |
|
+---------------+ | |
|
| | |
|
| (command, command args) | |
|
| | |
|
v | |
|
+------------------+ | |
|
| Executor | Each branch is an | |
|
| (Tree Structure) | executor | |
|
+------------------+ | |
|
| ^ |
|
| (summary) | |
|
| | |
|
v | |
|
| | |
|
+-> goes back to the Controller>-+ |
|
|
|
``` |
|
|
|
Structure of the Executors: |
|
``` |
|
+-------------------+ |
|
| Branching | |
|
| Executor | |
|
+-------------------+ |
|
/ \ |
|
/ \ |
|
/ \ |
|
/ \ |
|
write_plan ask_user |
|
|
|
``` |
|
|
|
About the branches: |
|
- [ask_user](https://huggingface.co/Tachi67/PlanWriterFlowModule/blob/main/PlanWriterAskUserFlow.py): Ask user for info / confirmation, etc. |
|
- [write_plan](https://huggingface.co/Tachi67/InteractivePlanGenFlowModule): Generates plan (user edit is allowed) and fetches user feedback. |
|
- The PlanGenerator of write_plan is replaced with [NewPlanGenFlow](https://huggingface.co/Tachi67/ReplanningFlowModule/blob/main/NewPlanGenFlow.py) to re-plan instead of write plan. |
|
|
|
How it works: |
|
Controller calls write_plan until user is satisfied in the feedback, finish. |
|
|
|
|
|
# Table of Contents |
|
|
|
* [run\_replanning](#run_replanning) |
|
* [ReplanningAskUserFlow](#ReplanningAskUserFlow) |
|
* [ReplanningAskUserFlow](#ReplanningAskUserFlow.ReplanningAskUserFlow) |
|
* [NewPlanGenFlow](#NewPlanGenFlow) |
|
* [ReplanningFlow](#ReplanningFlow) |
|
* [ReplanningFlow](#ReplanningFlow.ReplanningFlow) |
|
* [\_\_init\_\_](#__init__) |
|
|
|
<a id="run_replanning"></a> |
|
|
|
# run\_replanning |
|
|
|
<a id="ReplanningAskUserFlow"></a> |
|
|
|
# ReplanningAskUserFlow |
|
|
|
<a id="ReplanningAskUserFlow.ReplanningAskUserFlow"></a> |
|
|
|
## ReplanningAskUserFlow Objects |
|
|
|
```python |
|
class ReplanningAskUserFlow(HumanStandardInputFlow) |
|
``` |
|
|
|
Refer to: https://huggingface.co/Tachi67/ExtendLibraryFlowModule/blob/main/ExtLibAskUserFlow.py |
|
|
|
<a id="NewPlanGenFlow"></a> |
|
|
|
# NewPlanGenFlow |
|
|
|
<a id="ReplanningFlow"></a> |
|
|
|
# ReplanningFlow |
|
|
|
<a id="ReplanningFlow.ReplanningFlow"></a> |
|
|
|
## ReplanningFlow Objects |
|
|
|
```python |
|
class ReplanningFlow(PlanWriterFlow) |
|
``` |
|
|
|
This flow inherits from PlanWriterFlow. |
|
By changing prompts and injecting proper information to the controller and the PlanGenerator, we are able to achieve the replanning. |
|
|
|
*Input Interface*: |
|
- `goal` (str): information on the old plan (e.g. what is wrong) |
|
- `plan` (str): the old plan |
|
- `plan_file_location` (str): the location of the old plan file |
|
|
|
*Output Interface*: |
|
- `plan` (str): the new plan |
|
- `status`: "finished" or "unfinished" |
|
- `summary` (str): summary of the flow, will be written to the log file of the caller flow. |
|
- `result` (str): result of the flow, will be passed to the controller of the caller flow. |
|
|
|
<a id="__init__"></a> |
|
|
|
# \_\_init\_\_ |
|
|
|
|