|
name: "CodeReflect_Flow" |
|
description: |-2 |
|
Given a problem description, generate code, 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: |
|
- "code" |
|
|
|
|
|
max_rounds: 4 |
|
early_exit_key: "end_of_interaction" |
|
|
|
|
|
subflows_config: |
|
CodeGenerator: |
|
_target_: .CF_Code.instantiate_from_default_config |
|
CodeReflectCritic: |
|
_target_: .FixedReply_CodeReflect.instantiate_from_default_config |
|
|
|
|
|
topology: |
|
|
|
- goal: "Generate/refine a solution." |
|
|
|
|
|
input_interface: |
|
_target_: flows.interfaces.KeyInterface |
|
additional_transformations: |
|
- _target_: flows.data_transformations.KeyMatchInput |
|
keys_to_rename: |
|
code_reflect_message: "query" |
|
|
|
|
|
flow: CodeGenerator |
|
|
|
|
|
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.EndOfInteraction |
|
end_of_interaction_string: "Final answer" |
|
input_key: "api_output" |
|
output_key: "end_of_interaction" |
|
- _target_: flows.data_transformations.PrintPreviousMessages |
|
keys_to_select: |
|
- "code" |
|
- "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: CodeReflectCritic |
|
|
|
|
|
output_interface: |
|
_target_: flows.interfaces.KeyInterface |
|
keys_to_rename: |
|
fixed_reply: "code_reflect_message" |
|
|
|
|
|
reset: true |
|
|