File size: 2,257 Bytes
9741e89
 
 
f748a3e
 
 
 
4961d67
 
 
 
 
 
dca49e6
4961d67
 
9741e89
 
402cc4d
9741e89
 
f748a3e
9741e89
 
 
 
6fffc74
9741e89
 
 
 
 
 
 
 
 
6fffc74
9741e89
 
 
0c4a97b
68afe75
6fffc74
 
 
 
dca49e6
6fffc74
 
 
6128d20
6fffc74
 
dca49e6
6fffc74
6128d20
e54a1f1
9741e89
 
5be0629
9741e89
 
6fffc74
 
4961d67
dca49e6
0c4a97b
 
 
 
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
name: "CodeCollab_Flow"
description: "ToDO: add description"

max_rounds: 2 # ToDO: To increase to 4
early_exit_key: "end_of_interaction"

input_data_transformations: []
input_keys:
  - "problem_description"
  - "input_description"
  - "output_description"
  - "io_examples_and_explanation"

output_data_transformations: []
output_keys:
  - "code"

subflows_config:
  - _target_: martinjosifoski.CC_flows.CF_Code.instantiate_from_default_config
    overrides:
      name: "CodeGenerator"
      model_name: "gpt-4"
      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"
      output_data_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"

      output_keys:
        - "code"
        - "end_of_interaction"
  - _target_: martinjosifoski.CC_flows.CF_CodeCritic.instantiate_from_default_config
    overrides:
      name: CodeCritic
      output_data_transformations:
        - _target_: flows.data_transformations.KeyRename
          old_key2new_key:
            api_output: "code_feedback"

reset_every_round:
  CodeGenerator: False # this is the name of the subflow, may be different for each config, needs to check !
  CodeCritic: True