|
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_: flows.interfaces.KeyInterface |
|
additional_transformations: |
|
- _target_: flows.data_transformations.KeyMatchInput |
|
keys_to_rename: |
|
plan_reflect_message: "query" |
|
|
|
|
|
flow: PlanGenerator |
|
|
|
|
|
output_interface: |
|
_target_: flows.interfaces.KeyInterface |
|
additional_transformations: |
|
- _target_: flows.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_: flows.data_transformations.EndOfInteraction |
|
end_of_interaction_string: "Final answer" |
|
input_key: "api_output" |
|
output_key: "end_of_interaction" |
|
- _target_: flows.data_transformations.PrintPreviousMessages |
|
keys_to_select: |
|
- "plan" |
|
- "end_of_interaction" |
|
|
|
|
|
reset: false |
|
|
|
- goal: "Generate a message that encourages reflection." |
|
|
|
|
|
input_interface: |
|
_target_: flows.interfaces.KeyInterface |
|
additional_transformations: |
|
- _target_: flows.data_transformations.KeyMatchInput |
|
|
|
|
|
flow: PlanReflectCritic |
|
|
|
|
|
output_interface: |
|
_target_: flows.interfaces.KeyInterface |
|
keys_to_rename: |
|
fixed_reply: "plan_reflect_message" |
|
|
|
|
|
reset: true |
|
|