name: "CodeCollab_Flow" | |
description: "ToDO: add description" | |
max_rounds: 2 # ToDO: To increase to 4 | |
input_keys: | |
- "problem_description" | |
- "input_description" | |
- "output_description" | |
- "io_examples_and_explanation" | |
output_keys: | |
- "code" | |
subflows_config: | |
CodeGenerator: | |
_target_: .CF_Code.instantiate_from_default_config | |
overrides: | |
human_message_prompt_template: | |
_target_: langchain.PromptTemplate | |
template: |2- | |
# Feedback on the last proposed solution | |
{{code_feedback}} | |
Consider the original problem statement, the last proposed solution and the provided feedback. Does the solution need to be updated? If so, provide the corrected version of the code in the following format: | |
```python | |
{{code_placeholder}} | |
``` | |
otherwise, reply: | |
"Final answer." | |
input_variables: | |
- code_feedback | |
partial_variables: | |
code_placeholder: "{{python_code}}" | |
template_format: jinja2 | |
input_keys: | |
- "code_feedback" | |
CodeCritic: | |
_target_: .CF_CodeCritic.instantiate_from_default_config | |
topology: | |
- flow: CodeGenerator | |
reset_every_round: false | |
output_transformations: | |
- _target_: flows.data_transformations.EndOfInteraction | |
end_of_interaction_string: "Final answer" | |
input_key: "api_output" | |
output_key: "end_of_interaction" | |
- flow: CodeCritic | |
reset_every_round: true | |
output_transformations: | |
- _target_: flows.data_transformations.KeyRename | |
old_key2new_key: | |
api_output: "code_feedback" | |
early_exit_key: "end_of_interaction" | |