| name: "CodeDebug_Flow" |
| description: |2- |
| Given a problem description, generate code, test and refine it until all tests pass or a maximum number of rounds is reached. |
| |
| |
| input_interface: |
| - "problem_description" |
| - "input_description" |
| - "output_description" |
| - "io_examples_and_explanation" |
| - "public_tests_individual_io" |
|
|
| |
| output_interface: |
| - "code" |
|
|
| |
| max_rounds: 4 |
|
|
| |
| subflows_config: |
| CodeGenerator: |
| _target_: .CF_Code.instantiate_from_default_config |
| name: "CodeGenerator" |
| backend: |
| _target_: aiflows.backends.llm_lite.LiteLLMBackend |
| model_name: |
| openai: "gpt-4" |
| azure: "azure/gpt-4" |
| human_message_prompt_template: |
| template: |2- |
| {{testing_results_summary}} |
| |
|
|
| Consider the problem statement, the last proposed solution, and its issue. Provide a corrected version of the code that solves the original problem and resolves the issue, without any explanation, in the following format: |
| ```python |
| {{code_placeholder}} |
| ``` |
| input_variables: |
| - testing_results_summary |
| partial_variables: |
| code_placeholder: "{{python_code}}" |
| input_interface_initialized: |
| - "testing_results_summary" |
| CodeTestingCritic: |
| _target_: .CF_CodeTesting.instantiate_from_default_config |
|
|
| |
| topology: |
| |
| - goal: "Generate/refine a solution." |
|
|
| |
| input_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| additional_transformations: |
| - _target_: aiflows.data_transformations.KeyMatchInput |
|
|
| |
| flow: CodeGenerator |
|
|
| |
| 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" |
|
|
| |
| reset: false |
|
|
| |
| - goal: "Test the code on the public tests and provide a results summary." |
|
|
| |
| input_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| additional_transformations: |
| - _target_: aiflows.data_transformations.KeyMatchInput |
|
|
| |
| flow: CodeTestingCritic |
|
|
| |
| output_interface: |
| _target_: aiflows.interfaces.KeyInterface |
| additional_transformations: |
| - _target_: .src.data_transformations.CorrectnessFlag |
| input_key: "public_tests_results" |
| output_key: "all_tests_passed" |
| - _target_: .src.data_transformations.TestingResultsSummaryGeneration |
| output_key: "testing_results_summary" |
|
|
| single_test_error_message: True |
|
|
| no_error_template: |2- |
| ${.issue_title} |
| All of the executed tests passed. |
| |
| compilation_error_template: |2- |
| ${.issue_title} |
| The execution resulted in a compilation error. |
| ## Compilation error message: |
| {{error_message}} |
| timeout_error_template: |2- |
| ${.issue_title} |
| The execution timed out, the solution is not efficient enough. |
| runtime_error_template: |2- |
| ${.issue_title} |
| The execution resulted in a runtime error on the following test. |
| ## [Failed test] Input |
| ``` |
| {{test_input}} |
| ``` |
| ## [Failed test] Runtime error message |
| {{error_message}} |
| single_test_error_template: |2- |
| ${.issue_title} |
| The Python code does not solve the problem in the problem description due to logical errors. It fails the following test: |
| ## [Failed test] Input |
| ``` |
| {{test_input}} |
| ``` |
| ## [Failed test] Expected output |
| ``` |
| {{expected_output}} |
| ``` |
| ## [Failed test] Generated output |
| ``` |
| {{generated_output}} |
| ``` |
| all_tests_header: |2- |
| ${.issue_title} |
| The Python code does not solve the problem in the problem description due to logical errors. It fails on the following tests. |
| test_error_template: |2- |
| ## [Failed test {{idx}}] |
| ### [Failed test {{idx}}] Input |
| ``` |
| {{test_input}} |
| ``` |
| ### [Failed test {{idx}}] Expected output |
| ``` |
| {{expected_output}} |
| ``` |
| ### [Failed test {{idx}}] Generated output |
| ``` |
| {{generated_output}} |
| ``` |
| tests_separator: "\n\n" |
|
|
| issue_title: "# Issue with the last proposed solution" |
|
|
| |
| reset: true |