new version compatible
Browse files- ControllerAtomicFlow.yaml +1 -0
- ControllerExecutorFlow.yaml +2 -2
- WikiSearchAtomicFlow.yaml +1 -1
- demo.yaml +8 -2
- run.py +26 -13
ControllerAtomicFlow.yaml
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
name: "ControllerFlow"
|
2 |
description: "Proposes the next action to take towards achieving the goal, and prepares the input for the executor."
|
|
|
3 |
enable_cache: True
|
4 |
|
5 |
#######################################################
|
|
|
1 |
name: "ControllerFlow"
|
2 |
description: "Proposes the next action to take towards achieving the goal, and prepares the input for the executor."
|
3 |
+
_target_: flow_modules.aiflows.ControllerExecutorFlowModule.ControllerAtomicFlow.instantiate_from_default_config
|
4 |
enable_cache: True
|
5 |
|
6 |
#######################################################
|
ControllerExecutorFlow.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
name: "CtrlEx"
|
2 |
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."
|
3 |
max_rounds: 30
|
4 |
-
|
5 |
### Information used by the default interface specification implementation
|
6 |
input_interface:
|
7 |
- "goal"
|
@@ -14,7 +14,7 @@ subflows_config:
|
|
14 |
Controller:
|
15 |
name: "ControllerAtomicFlow"
|
16 |
description: "A flow that calls other flows to solve a problem."
|
17 |
-
_target_: flow_modules.aiflows.ControllerAtomicFlow.instantiate_from_default_config
|
18 |
commands:
|
19 |
finish:
|
20 |
description: "Signal that the objective has been satisfied, and returns the answer to the user."
|
|
|
1 |
name: "CtrlEx"
|
2 |
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."
|
3 |
max_rounds: 30
|
4 |
+
_target_: flow_modules.aiflows.ControllerExecutorFlowModule.ControllerExecutorFlow.instantiate_from_default_config
|
5 |
### Information used by the default interface specification implementation
|
6 |
input_interface:
|
7 |
- "goal"
|
|
|
14 |
Controller:
|
15 |
name: "ControllerAtomicFlow"
|
16 |
description: "A flow that calls other flows to solve a problem."
|
17 |
+
_target_: flow_modules.aiflows.ControllerExecutorFlowModule.ControllerAtomicFlow.instantiate_from_default_config
|
18 |
commands:
|
19 |
finish:
|
20 |
description: "Signal that the objective has been satisfied, and returns the answer to the user."
|
WikiSearchAtomicFlow.yaml
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
name: WikiSearchAtomicFlow
|
2 |
description: "A Flow that queries the wikipedia API for a page content."
|
3 |
-
|
4 |
keep_raw_response: false
|
5 |
|
6 |
lang: en
|
|
|
1 |
name: WikiSearchAtomicFlow
|
2 |
description: "A Flow that queries the wikipedia API for a page content."
|
3 |
+
_target_: flow_modules.aiflows.ControllerExecutorFlowModule.WikiSearchAtomicFlow.instantiate_from_default_config
|
4 |
keep_raw_response: false
|
5 |
|
6 |
lang: en
|
demo.yaml
CHANGED
@@ -4,7 +4,11 @@ max_rounds: 30
|
|
4 |
### Subflows specification
|
5 |
subflows_config:
|
6 |
Controller:
|
7 |
-
_target_:
|
|
|
|
|
|
|
|
|
8 |
commands:
|
9 |
wiki_search:
|
10 |
description: "Performs a search on Wikipedia."
|
@@ -22,6 +26,8 @@ subflows_config:
|
|
22 |
|
23 |
|
24 |
wiki_search:
|
25 |
-
_target_:
|
26 |
name: "WikiSearchAtomicFlow"
|
27 |
description: "A flow that searches Wikipedia for information."
|
|
|
|
|
|
4 |
### Subflows specification
|
5 |
subflows_config:
|
6 |
Controller:
|
7 |
+
_target_: aiflows.base_flows.AtomicFlow.instantiate_from_default_config
|
8 |
+
name: "Proxy Controller"
|
9 |
+
description: "A flow that acts as a proxy for the controller."
|
10 |
+
flow_endpoint: ControllerAtomicFlow
|
11 |
+
user_id: local
|
12 |
commands:
|
13 |
wiki_search:
|
14 |
description: "Performs a search on Wikipedia."
|
|
|
26 |
|
27 |
|
28 |
wiki_search:
|
29 |
+
_target_: aiflows.base_flows.AtomicFlow.instantiate_from_default_config
|
30 |
name: "WikiSearchAtomicFlow"
|
31 |
description: "A flow that searches Wikipedia for information."
|
32 |
+
flow_endpoint: WikiSearchAtomicFlow
|
33 |
+
user_id: local
|
run.py
CHANGED
@@ -58,26 +58,39 @@ if __name__ == "__main__":
|
|
58 |
|
59 |
|
60 |
#3. ~~~~ Serve The Flow ~~~~
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
cl = cl,
|
63 |
-
|
64 |
-
|
65 |
-
default_state=None,
|
66 |
-
default_dispatch_point="coflows_dispatch"
|
67 |
)
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
#4. ~~~~~Start A Worker Thread~~~~~
|
70 |
-
run_dispatch_worker_thread(cl
|
71 |
|
72 |
#5. ~~~~~Mount the flow and get its proxy~~~~~~
|
73 |
-
proxy_flow
|
74 |
cl=cl,
|
75 |
-
|
76 |
-
|
77 |
-
config_overrides=
|
78 |
-
|
79 |
-
|
80 |
-
|
|
|
81 |
|
82 |
#6. ~~~ Get the data ~~~
|
83 |
data = {
|
|
|
58 |
|
59 |
|
60 |
#3. ~~~~ Serve The Flow ~~~~
|
61 |
+
|
62 |
+
|
63 |
+
serve_utils.serve_flow(
|
64 |
+
cl = cl,
|
65 |
+
flow_class_name="flow_modules.aiflows.ControllerExecutorFlowModule.WikiSearchAtomicFlow",
|
66 |
+
flow_endpoint="WikiSearchAtomicFlow",
|
67 |
+
)
|
68 |
+
|
69 |
+
serve_utils.serve_flow(
|
70 |
cl = cl,
|
71 |
+
flow_class_name="flow_modules.aiflows.ControllerExecutorFlowModule.ControllerAtomicFlow",
|
72 |
+
flow_endpoint="ControllerAtomicFlow",
|
|
|
|
|
73 |
)
|
74 |
|
75 |
+
serve_utils.serve_flow(
|
76 |
+
cl = cl,
|
77 |
+
flow_class_name="flow_modules.aiflows.ControllerExecutorFlowModule.ControllerExecutorFlow",
|
78 |
+
flow_endpoint="ControllerExecutorFlow",
|
79 |
+
)
|
80 |
+
|
81 |
#4. ~~~~~Start A Worker Thread~~~~~
|
82 |
+
run_dispatch_worker_thread(cl)
|
83 |
|
84 |
#5. ~~~~~Mount the flow and get its proxy~~~~~~
|
85 |
+
proxy_flow= serve_utils.get_flow_instance(
|
86 |
cl=cl,
|
87 |
+
flow_endpoint="ControllerExecutorFlow",
|
88 |
+
user_id="local",
|
89 |
+
config_overrides = cfg
|
90 |
+
)
|
91 |
+
|
92 |
+
|
93 |
+
|
94 |
|
95 |
#6. ~~~ Get the data ~~~
|
96 |
data = {
|