Tachi67's picture
Update README.md
91ff3c0
### Structure of CodeWriterFlow
```
goal
|
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_code ask_user test
```
About the branches:
- [ask_user](https://huggingface.co/Tachi67/CodeWriterFlowModule/blob/main/CodeWriterAskUserFlow.py): Ask user for info / confirmation, etc.
- [write_code](https://huggingface.co/Tachi67/InteractiveCodeGenFlowModule): Generates code (user edit is allowed) and fetches user feedback.
- [test](https://huggingface.co/Tachi67/TestCodeFlowModule): Test the code, user can provide test suites, if nothing is provided, syntax of the code is checked.
How it works:
Controller calls write_code until user is satisfied in the feedback, then controller calls test to test the code, if test passes, finish.
# Table of Contents
* [run\_codewriter](#run_codewriter)
* [CodeWriterCtrlFlow](#CodeWriterCtrlFlow)
* [CodeWriterCtrlFlow](#CodeWriterCtrlFlow.CodeWriterCtrlFlow)
* [CodeWriterAskUserFlow](#CodeWriterAskUserFlow)
* [CodeWriterAskUserFlow](#CodeWriterAskUserFlow.CodeWriterAskUserFlow)
* [run](#CodeWriterAskUserFlow.CodeWriterAskUserFlow.run)
* [CodeWriterFlow](#CodeWriterFlow)
* [CodeWriterFlow](#CodeWriterFlow.CodeWriterFlow)
* [\_\_init\_\_](#__init__)
<a id="run_codewriter"></a>
# run\_codewriter
<a id="CodeWriterCtrlFlow"></a>
# CodeWriterCtrlFlow
<a id="CodeWriterCtrlFlow.CodeWriterCtrlFlow"></a>
## CodeWriterCtrlFlow Objects
```python
class CodeWriterCtrlFlow(ChatAtomicFlow)
```
refer to https://huggingface.co/Tachi67/JarvisFlowModule/blob/main/Controller_JarvisFlow.py
<a id="CodeWriterAskUserFlow"></a>
# CodeWriterAskUserFlow
<a id="CodeWriterAskUserFlow.CodeWriterAskUserFlow"></a>
## CodeWriterAskUserFlow Objects
```python
class CodeWriterAskUserFlow(HumanStandardInputFlow)
```
This class is used to ask for user feedback whenever the controller is unsure of something, or need confirmation, etc.
*Expected Input*:
- `question`: The question asked by the controller
*Expected Behaviour*:
- The question is displayed, and the user gives feedback by inputing string.
*Expected Ouput*:
- `feedback`: The input of the user.
- `code`: No code was written.
<a id="CodeWriterAskUserFlow.CodeWriterAskUserFlow.run"></a>
#### run
```python
def run(input_data: Dict[str, Any]) -> Dict[str, Any]
```
Run the flow.
**Arguments**:
- `input_data`: The input data.
**Returns**:
The output data.
<a id="CodeWriterFlow"></a>
# CodeWriterFlow
<a id="CodeWriterFlow.CodeWriterFlow"></a>
## CodeWriterFlow Objects
```python
class CodeWriterFlow(ContentWriterFlow)
```
This flow inherits from ContentWriterFlow, it is used to write code in an interactive way.
In the subflow of the executor, we specify an InteractiveCodeGenFlow (https://huggingface.co/Tachi67/InteractiveCodeGenFlowModule)
*Input Interface*:
- `goal`
*Output Interface*:
- `code`
- `result`
- `summary`
- `status`
<a id="__init__"></a>
# \_\_init\_\_