File size: 1,976 Bytes
cbb225c
 
 
 
 
 
 
 
 
 
 
 
 
 
93c74cc
cbb225c
 
 
 
 
 
 
 
40a0d94
cbb225c
 
93c74cc
cbb225c
 
 
 
40a0d94
cbb225c
 
 
 
 
 
93c74cc
cbb225c
93c74cc
cbb225c
 
cd8c610
cbb225c
 
 
 
93c74cc
cbb225c
 
 
 
 
 
93c74cc
cbb225c
 
 
 
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
name: "CtrlEx"
description: "ControllerExecutor (i.e., MRKL, ReAct) interaction implementation with Flows that approaches the problem solving in two phases: one Flow chooses the next step and another Flow executes it. This is repeated until the controller Flow concludes on an answer."
max_rounds: 30

### Information used by the default interface specification implementation
input_interface:
  - "goal"
output_interface:
  - "answer"
  - "status"

### Subflows specification
subflows_config:
  Controller:
    _target_: flow_modules.aiflows.ControllerAtomicFlow.instantiate_from_default_config
    finish:
      description: "Signal that the objective has been satisfied, and returns the answer to the user."
      input_args: ["answer"]
# E.g.,
#    commands:
#      wiki_search:
#        description: "Performs a search on Wikipedia."
#        input_args: ["search_term"]


  Executor:
    _target_: aiflows.base_flows.BranchingFlow.instantiate_from_default_config
# E.g.,
#    subflows_config:
#      wiki_search:
#        _target_: .WikiSearchAtomicFlow.instantiate_from_default_config


early_exit_key: "EARLY_EXIT"

topology:
  - goal: "Select the next action and prepare the input for the executor."
    input_interface:
      _target_: aiflows.interfaces.KeyInterface
      additional_transformations:
        - _target_: aiflows.data_transformations.KeyMatchInput
    flow: Controller
    output_interface:
      _target_: ControllerExecutorFlow.detect_finish_or_continue
    reset: false

  - goal: "Execute the action specified by the Controller."
    input_interface:
      _target_: aiflows.interfaces.KeyInterface
      keys_to_rename:
        command: branch
        command_args: branch_input_data
      keys_to_select: ["branch", "branch_input_data"]
    flow: Executor
    output_interface:
      _target_: aiflows.interfaces.KeyInterface
      keys_to_rename:
        branch_output_data: observation
      keys_to_select: ["observation"]
    reset: false