|
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 |