name: "PlanCollab_Code_Flow" description: |2- Given a problem description, first generate a solution strategy in collaboration with at critic, and then implement the code. # ~~~ Input interface specification ~~~ input_interface: - "problem_description" - "input_description" - "output_description" - "io_examples_and_explanation" # ~~~ Output interface specification ~~~ output_interface: - "code" subflows_config: PlanGenerator: _target_: .CF_PlanCollab.instantiate_from_default_config CodeGenerator: _target_: .CF_CodeWithPlan.instantiate_from_default_config ### Topology specification (specifies how the sequence of messages will flow from one of the subflows to another) topology: # ~~~ Plan Generator ~~~ - goal: "Generate a plan and reflect on it." ### Input Interface input_interface: _target_: flows.interfaces.KeyInterface additional_transformations: - _target_: flows.data_transformations.KeyMatchInput ### Flow Specification flow: PlanGenerator ### Output Interface output_interface: _target_: flows.interfaces.KeyInterface keys_to_select: - "plan" # ~~~ Code Generator ~~~ - goal: "Generate/refine a solution." ### Input Interface input_interface: _target_: flows.interfaces.KeyInterface additional_transformations: - _target_: flows.data_transformations.KeyMatchInput ### Flow Specification flow: CodeGenerator ### Output Interface output_interface: _target_: flows.interfaces.KeyInterface additional_transformations: - _target_: flows.data_transformations.RegexFirstOccurrenceExtractor regex: '(?<=```python)([\s\S]*?)(?=```)' regex_fallback: '(?<=```)([\s\S]*?)(?=```)' input_key: "api_output" output_key: "code" strip: True assert_unique: True - _target_: flows.data_transformations.PrintPreviousMessages keys_to_select: - "code"