File size: 4,745 Bytes
6fffc74 1a3765a 6fffc74 1a3765a 6fffc74 ca366eb 1a3765a ca366eb 1a3765a ca366eb 1a3765a b475feb ca366eb 1a3765a ca366eb 1a3765a b475feb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
name: "CodeDebug_Flow"
description: "ToDO: add description"
max_rounds: 2 # ToDo: To increase to 4
input_interface:
- "problem_description"
- "input_description"
- "output_description"
- "io_examples_and_explanation"
- "public_tests_individual_io"
output_interface:
- "code"
subflows_config:
CodeGenerator:
_target_: .CF_Code.instantiate_from_default_config
name: "CodeGenerator"
model_name: "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:
# ~~~ Code Generator ~~~
- goal: "Generate/refine a solution."
### Input Interface
input_interface:
_target_: flows.interfaces.KeyInterface
additional_transformations:
- _target_: flows.data_transformations.KeyMatchInput
### Flow Specification
flow: CodeGenerator
### Output Interface
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
keys_to_select:
- "code"
reset: false
# ~~~ Code Testing Critic ~~~
- goal: "Test the code on the public tests and provide a results summary."
### Input Interface
input_interface:
_target_: flows.interfaces.KeyInterface
additional_transformations:
- _target_: flows.data_transformations.KeyMatchInput
### Flow Specification
flow: CodeTestingCritic
### Output Interface
output_interface:
_target_: flows.interfaces.KeyInterface
additional_transformations:
- _target_: martinjosifoski.CC_flows.src.data_transformations.CorrectnessFlag
input_key: "public_tests_results"
output_key: "all_tests_passed"
- _target_: martinjosifoski.CC_flows.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 |