Slight bug fix
Browse files- AutoGPTFlow.py +19 -14
- demo_db_dir/chroma-collections.parquet +3 -0
- demo_db_dir/chroma-embeddings.parquet +3 -0
- demo_db_dir/index/id_to_uuid_42e9cea0-eda4-4767-bb24-e634530872e5.pkl +3 -0
- demo_db_dir/index/index_42e9cea0-eda4-4767-bb24-e634530872e5.bin +3 -0
- demo_db_dir/index/index_metadata_42e9cea0-eda4-4767-bb24-e634530872e5.pkl +3 -0
- demo_db_dir/index/uuid_to_id_42e9cea0-eda4-4767-bb24-e634530872e5.pkl +3 -0
- run.py +1 -1
AutoGPTFlow.py
CHANGED
|
@@ -95,7 +95,7 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 95 |
keys_to_select = ["human_feedback"],
|
| 96 |
)
|
| 97 |
|
| 98 |
-
self.
|
| 99 |
None: "MemoryRead",
|
| 100 |
"MemoryRead": "Controller",
|
| 101 |
"Controller": "Executor",
|
|
@@ -111,6 +111,8 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 111 |
|
| 112 |
def prepare_memory_read_output(self,data_dict: Dict[str, Any],**kwargs):
|
| 113 |
""" This method prepares the output of the Memory Flow to be used by the Controller Flow."""
|
|
|
|
|
|
|
| 114 |
retrieved_memories = data_dict["retrieved"][0][1:]
|
| 115 |
return {"memory": "\n".join(retrieved_memories)}
|
| 116 |
|
|
@@ -228,16 +230,16 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 228 |
# either programmatically or using the _state_update_dict and
|
| 229 |
# input and ouput interface methods
|
| 230 |
|
| 231 |
-
|
| 232 |
|
| 233 |
-
if
|
| 234 |
self.flow_state["input_message"] = input_message
|
| 235 |
self.flow_state["goal"] = input_message.data["goal"]
|
| 236 |
|
| 237 |
-
elif
|
| 238 |
self.flow_state["observation"] = input_message.data
|
| 239 |
|
| 240 |
-
elif
|
| 241 |
self._state_update_dict(
|
| 242 |
{
|
| 243 |
"command": input_message.data["command"],
|
|
@@ -258,12 +260,12 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 258 |
self.flow_state["early_exit_flag"] = True
|
| 259 |
|
| 260 |
|
| 261 |
-
elif
|
| 262 |
self._state_update_dict(
|
| 263 |
self.memory_read_ouput_interface(input_message).data
|
| 264 |
)
|
| 265 |
|
| 266 |
-
elif
|
| 267 |
self._state_update_dict(
|
| 268 |
self.human_feedback_ouput_interface(input_message).data
|
| 269 |
)
|
|
@@ -289,24 +291,24 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 289 |
"""
|
| 290 |
self.register_data_to_state(input_message)
|
| 291 |
|
| 292 |
-
|
| 293 |
|
| 294 |
if self.flow_state.get("early_exit_flag",False):
|
| 295 |
self.generate_reply()
|
| 296 |
|
| 297 |
-
elif
|
| 298 |
self.call_memory_read()
|
| 299 |
|
| 300 |
-
elif
|
| 301 |
self.call_controller()
|
| 302 |
|
| 303 |
-
elif
|
| 304 |
self.call_executor()
|
| 305 |
|
| 306 |
-
elif
|
| 307 |
self.call_human_feedback()
|
| 308 |
|
| 309 |
-
elif
|
| 310 |
self.call_memory_write()
|
| 311 |
self.flow_state["current_round"] += 1
|
| 312 |
|
|
@@ -314,6 +316,9 @@ class AutoGPTFlow(ControllerExecutorFlow):
|
|
| 314 |
self._on_reach_max_round()
|
| 315 |
self.generate_reply()
|
| 316 |
|
| 317 |
-
self.flow_state
|
|
|
|
|
|
|
|
|
|
| 318 |
|
| 319 |
|
|
|
|
| 95 |
keys_to_select = ["human_feedback"],
|
| 96 |
)
|
| 97 |
|
| 98 |
+
self.next_state = {
|
| 99 |
None: "MemoryRead",
|
| 100 |
"MemoryRead": "Controller",
|
| 101 |
"Controller": "Executor",
|
|
|
|
| 111 |
|
| 112 |
def prepare_memory_read_output(self,data_dict: Dict[str, Any],**kwargs):
|
| 113 |
""" This method prepares the output of the Memory Flow to be used by the Controller Flow."""
|
| 114 |
+
if len(data_dict["retrieved"]) == 0:
|
| 115 |
+
return {"memory": ""}
|
| 116 |
retrieved_memories = data_dict["retrieved"][0][1:]
|
| 117 |
return {"memory": "\n".join(retrieved_memories)}
|
| 118 |
|
|
|
|
| 230 |
# either programmatically or using the _state_update_dict and
|
| 231 |
# input and ouput interface methods
|
| 232 |
|
| 233 |
+
last_state = self.flow_state["last_state"]
|
| 234 |
|
| 235 |
+
if last_state is None:
|
| 236 |
self.flow_state["input_message"] = input_message
|
| 237 |
self.flow_state["goal"] = input_message.data["goal"]
|
| 238 |
|
| 239 |
+
elif last_state == "Executor":
|
| 240 |
self.flow_state["observation"] = input_message.data
|
| 241 |
|
| 242 |
+
elif last_state == "Controller":
|
| 243 |
self._state_update_dict(
|
| 244 |
{
|
| 245 |
"command": input_message.data["command"],
|
|
|
|
| 260 |
self.flow_state["early_exit_flag"] = True
|
| 261 |
|
| 262 |
|
| 263 |
+
elif last_state == "MemoryRead":
|
| 264 |
self._state_update_dict(
|
| 265 |
self.memory_read_ouput_interface(input_message).data
|
| 266 |
)
|
| 267 |
|
| 268 |
+
elif last_state == "HumanFeedback":
|
| 269 |
self._state_update_dict(
|
| 270 |
self.human_feedback_ouput_interface(input_message).data
|
| 271 |
)
|
|
|
|
| 291 |
"""
|
| 292 |
self.register_data_to_state(input_message)
|
| 293 |
|
| 294 |
+
current_state = self.get_next_state()
|
| 295 |
|
| 296 |
if self.flow_state.get("early_exit_flag",False):
|
| 297 |
self.generate_reply()
|
| 298 |
|
| 299 |
+
elif current_state == "MemoryRead":
|
| 300 |
self.call_memory_read()
|
| 301 |
|
| 302 |
+
elif current_state == "Controller":
|
| 303 |
self.call_controller()
|
| 304 |
|
| 305 |
+
elif current_state == "Executor":
|
| 306 |
self.call_executor()
|
| 307 |
|
| 308 |
+
elif current_state == "HumanFeedback":
|
| 309 |
self.call_human_feedback()
|
| 310 |
|
| 311 |
+
elif current_state == "MemoryWrite":
|
| 312 |
self.call_memory_write()
|
| 313 |
self.flow_state["current_round"] += 1
|
| 314 |
|
|
|
|
| 316 |
self._on_reach_max_round()
|
| 317 |
self.generate_reply()
|
| 318 |
|
| 319 |
+
if self.flow_state.get("early_exit_flag",False) or current_state is None:
|
| 320 |
+
self.flow_state["last_state"] = None
|
| 321 |
+
else:
|
| 322 |
+
self.flow_state["last_state"] = current_state
|
| 323 |
|
| 324 |
|
demo_db_dir/chroma-collections.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:dad8d76313bc0a34d32374510832b6b28abe6539ce1b154732e09fa46614a6ee
|
| 3 |
+
size 559
|
demo_db_dir/chroma-embeddings.parquet
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:16e451ee9045b5e317ebfa8856a8478e1b33a9e04caf34f200efaf137b2f5ce1
|
| 3 |
+
size 174
|
demo_db_dir/index/id_to_uuid_42e9cea0-eda4-4767-bb24-e634530872e5.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0fd682353cb15f94132bc161e4ef161067cf4e618717ec84bc93806116b2cdb4
|
| 3 |
+
size 64
|
demo_db_dir/index/index_42e9cea0-eda4-4767-bb24-e634530872e5.bin
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:3408b2e390cf695ccb65ae29a20526deb32ebb5872d450895ee7b163c50a0936
|
| 3 |
+
size 6384
|
demo_db_dir/index/index_metadata_42e9cea0-eda4-4767-bb24-e634530872e5.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:88eefc0a355ab39a170b7a60b8143a504f312a038e6db539cdffdc80960f2c75
|
| 3 |
+
size 103
|
demo_db_dir/index/uuid_to_id_42e9cea0-eda4-4767-bb24-e634530872e5.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d76ef92df773960d674a3aa3e0765d99cfee2751597a6227a59ca4e24f9bb973
|
| 3 |
+
size 52
|
run.py
CHANGED
|
@@ -83,7 +83,7 @@ if __name__ == "__main__":
|
|
| 83 |
"goal": "Answer the following question: What is the profession and date of birth of Michael Jordan?",
|
| 84 |
}
|
| 85 |
|
| 86 |
-
|
| 87 |
#option1: use the FlowMessage class
|
| 88 |
input_message = FlowMessage(
|
| 89 |
data=data,
|
|
|
|
| 83 |
"goal": "Answer the following question: What is the profession and date of birth of Michael Jordan?",
|
| 84 |
}
|
| 85 |
|
| 86 |
+
|
| 87 |
#option1: use the FlowMessage class
|
| 88 |
input_message = FlowMessage(
|
| 89 |
data=data,
|