# Table of Contents * [Structure of InteractivePlanGenFlow](#structure-of-interactiveplangenflow) * [run](#run) * [InteractivePlanGenFlow](#InteractivePlanGenFlow) * [InteractivePlanGenFlow](#InteractivePlanGenFlow.InteractivePlanGenFlow) * [\_\_init\_\_](#InteractivePlanGenFlow.InteractivePlanGenFlow.__init__) * [instantiate\_from\_config](#InteractivePlanGenFlow.InteractivePlanGenFlow.instantiate_from_config) * [run](#InteractivePlanGenFlow.InteractivePlanGenFlow.run) * [\_\_init\_\_](#__init__) # Structure of InteractivePlanGenFlow ``` goal | | | v +------------------+ | PlanGenerator | Generates plan given goal. (https://huggingface.co/aiflows/PlanGeneratorFlowModule) +------------------+ | | (plan) | v +-------------------+ | PlanFileEdit | Edit a temp file with the plan generated. (https://huggingface.co/aiflows/PlanFileEditFlowModule) +-------------------+ | | (temp_plan_file_location) | v +------------------+ | ParseFeedback | Opens up the temp file until user closes the file, parse for user feedback. (https://huggingface.co/aiflows/ParseFeedbackFlowModule) +------------------+ | | (plan, feedback) | v plan, feedback ``` # run # InteractivePlanGenFlow ## InteractivePlanGenFlow Objects ```python class InteractivePlanGenFlow(SequentialFlow) ``` This flow writes code in an interactive manner. It is a sequential flow composed of: 1. PlanGenerator: generates plan based on the goal. 2. PlanFileEditor: writes the generated plan to a temp file for the user to see, edit and provide feedback. 3. ParseFeedback: opens up the temp file with vscode and parses the feedback from the user. *Input Interface*: - `goal` - `plan_file_location` *Output Interface*: - `plan` - `feedback` - `temp_plan_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. #### \_\_init\_\_ ```python def __init__(**kwargs) ``` This function initializes the flow. **Arguments**: - `kwargs` (`Dict[str, Any]`): the configuration of the flow. #### 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**: `InteractivePlanGenFlow`: the instantiated flow. #### 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 of the flow. **Returns**: `Dict[str, Any]`: the output data of the flow. # \_\_init\_\_