name: "Plan_Code_Flow" description: |2- Given a problem description, first generate a solution strategy 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_Plan.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: # ~~~ Code Generator ~~~ - goal: "Generate a plan." ### Input Interface input_interface: _target_: aiflows.interfaces.KeyInterface additional_transformations: - _target_: aiflows.data_transformations.KeyMatchInput ### Flow Specification flow: PlanGenerator ### Output Interface output_interface: _target_: aiflows.interfaces.KeyInterface additional_transformations: - _target_: aiflows.data_transformations.RegexFirstOccurrenceExtractor regex: '(?<=Conceptual solution)([\s\S]*?)(?=\n\n# [A-Z]|\Z)' regex_fallback: - '(?<=Conceptual solution:)([\s\S]*?)(?=\n\n# [A-Z]|\Z)' input_key: "api_output" output_key: "plan" strip: True assert_unique: True - _target_: aiflows.data_transformations.PrintPreviousMessages keys_to_select: - "plan" # ~~~ Code Generator ~~~ - goal: "Generate/refine a solution." ### Input Interface input_interface: _target_: aiflows.interfaces.KeyInterface additional_transformations: - _target_: aiflows.data_transformations.KeyMatchInput ### Flow Specification flow: CodeGenerator ### Output Interface output_interface: _target_: aiflows.interfaces.KeyInterface additional_transformations: - _target_: aiflows.data_transformations.RegexFirstOccurrenceExtractor regex: '(?<=```python)([\s\S]*?)(?=```)' regex_fallback: '(?<=```)([\s\S]*?)(?=```)' input_key: "api_output" output_key: "code" strip: True assert_unique: True - _target_: aiflows.data_transformations.PrintPreviousMessages keys_to_select: - "code"