region:us
# Table of Contents

* [InteractiveCodeGenFlow](#InteractiveCodeGenFlow)
  * [InteractiveCodeGenFlow](#InteractiveCodeGenFlow.InteractiveCodeGenFlow)
    * [\_\_init\_\_](#InteractiveCodeGenFlow.InteractiveCodeGenFlow.__init__)
    * [instantiate\_from\_config](#InteractiveCodeGenFlow.InteractiveCodeGenFlow.instantiate_from_config)
    * [run](#InteractiveCodeGenFlow.InteractiveCodeGenFlow.run)
* [run](#run)
* [\_\_init\_\_](#__init__)

<a id="InteractiveCodeGenFlow"></a>

# InteractiveCodeGenFlow

<a id="InteractiveCodeGenFlow.InteractiveCodeGenFlow"></a>

## InteractiveCodeGenFlow Objects

```python
class InteractiveCodeGenFlow(SequentialFlow)
```

This flow writes code in an interactive manner. It is a sequential flow composed of:
1. MemoryReading: reads in the code library.
2. CodeGenerator: generates code based on the goal and functions in the code library.
3. CodeFileEditor: writes the generated code to a temp file for the user to see, edit and provide feedback.
4. ParseFeedback: opens up the temp file with vscode and parses the feedback from the user.

*Input Interface*:
- `goal`

*Output Interface*:
- `code`
- `feedback`
- `temp_code_file_location`


*Configuration Parameters*:
- `input_interface`: the input interface of the flow.
- `output_interface`: the output interface of the flow.
- `subflows_config`: the configuration of the subflows.
- `early_exit_key`: the key in the state dict that indicates whether the flow should exit early.
- `topology`: the topology of the subflows.

<a id="InteractiveCodeGenFlow.InteractiveCodeGenFlow.__init__"></a>

#### \_\_init\_\_

```python
def __init__(memory_files: Dict[str, Any], **kwargs)
```

This function initializes the flow.

**Arguments**:

- `memory_files` (`Dict[str, Any]`): the memory files that are used in the flow.
- `kwargs` (`Any`): the keyword arguments.

<a id="InteractiveCodeGenFlow.InteractiveCodeGenFlow.instantiate_from_config"></a>

#### instantiate\_from\_config

```python
@classmethod
def instantiate_from_config(cls, config)
```

This function instantiates the flow from a configuration.

**Arguments**:

- `config` (`Dict[str, Any]`): the configuration of the flow.

**Returns**:

`Flow`: the instantiated flow.

<a id="InteractiveCodeGenFlow.InteractiveCodeGenFlow.run"></a>

#### run

```python
def run(input_data: Dict[str, Any]) -> Dict[str, Any]
```

This function runs the flow.

**Arguments**:

- `input_data` (`Dict[str, Any]`): the input data to the flow.

**Returns**:

`Dict[str, Any]`: the output data from the flow.

<a id="run"></a>

# run

<a id="__init__"></a>

# \_\_init\_\_

