| name: "PlanReflect_Flow" |
| description: |-2 |
| Given a problem description, generate a plan, reflect on it and improve it until a message suggesting that the code seems correct or a maximum number of rounds is reached. |
|
|
| |
| input_interface: |
| - "problem_description" |
| - "input_description" |
| - "output_description" |
| - "io_examples_and_explanation" |
|
|
| |
| output_interface: |
| - "plan" |
|
|
| |
| max_rounds: 4 |
| early_exit_key: "end_of_interaction" |
|
|
| subflows_config: |
| PlanGenerator: |
| _target_: .CF_Plan.instantiate_from_default_config |
| PlanReflectCritic: |
| _target_: .FixedReply_PlanReflect.instantiate_from_default_config |
|
|
| |
| topology: |
| |
| - goal: "Generate/refine a plan." |
|
|
| |
| input_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| additional_transformations: |
| - _target_: aiflows.data_transformations.KeyMatchInput |
| keys_to_rename: |
| plan_reflect_message: "query" |
|
|
| |
| flow: PlanGenerator |
|
|
| |
| 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.EndOfInteraction |
| end_of_interaction_string: "Final answer" |
| input_key: "api_output" |
| output_key: "end_of_interaction" |
| - _target_: aiflows.data_transformations.PrintPreviousMessages |
| keys_to_select: |
| - "plan" |
| - "end_of_interaction" |
|
|
| |
| reset: false |
|
|
| - goal: "Generate a message that encourages reflection." |
|
|
| |
| input_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| additional_transformations: |
| - _target_: aiflows.data_transformations.KeyMatchInput |
|
|
| |
| flow: PlanReflectCritic |
|
|
| |
| output_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| keys_to_rename: |
| fixed_reply: "plan_reflect_message" |
|
|
| |
| reset: true |
|
|