| ### 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\_\_ |
| |
| |