-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGraphNode.py
More file actions
65 lines (45 loc) · 1.97 KB
/
GraphNode.py
File metadata and controls
65 lines (45 loc) · 1.97 KB
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
from typing import Any, List, Tuple, Dict
from State import State
class GraphNode:
def __init__(self,name:str, entrypoint:bool=False, db_connection:Any=None, state:State=None, start_index:int=None, should_summarize:bool=True):
self.name=name
self.entrypoint=entrypoint
self.db_connection=db_connection
self.incoming_edge=[]
self.outgoing_edge=[]
self.is_completed=False
self.start_index=start_index
self.should_summarize=should_summarize
self.state=state
self.step_data:Dict[str,Any]={}
def add_incoming_edge(self,edge):
self.incoming_edge.append(edge)
def add_outgoing_edge(self,edge):
self.outgoing_edge.append(edge)
def get_incoming_edges(self):
return self.incoming_edge
def get_outgoing_edges(self):
return self.outgoing_edge
def get_name(self):
return self.name
def set_db_connection(self,db_connection:Any):
self.db_connection=db_connection
def get_db_connection(self):
return self.db_connection
def update_step_data(self, step_data:Dict[str,Any]):
self.step_data.append(step_data)
def set_is_completed(self,is_completed:bool, summary:str=None):
self.is_completed=is_completed
self.state['step_checklist'][self.name]=[is_completed, self.step_data]
self.state['pre_string']=self.construct_pre_string(is_completed, summary)
self.insert_memmory(summary)
def set_state(self,state:State):
self.state=state
def get_state(self):
return self.state
def construct_pre_string(self,is_completed:bool, summary:str=None):
if summary is None:
return self.state['pre_string'] + f"Step {self.name}: is_completed={is_completed}"
return self.state['pre_string'] + f"Step {self.name}: {summary}"
def insert_memmory(self,summary:str):
self.state['memory'][self.name]=summary