Skip to content

Commit b7e6905

Browse files
committed
update new attr and ekg_construct_test_2
1 parent 8639800 commit b7e6905

File tree

5 files changed

+628
-171
lines changed

5 files changed

+628
-171
lines changed

muagent/db_handler/graph_db_handler/geabase_handler.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def __init__(
3434
def execute(self, gql: str, option=None, return_keys: list = []) -> Dict:
3535
option = option or self.option
3636
logger.info(f"{gql}")
37+
# return {"error": True}
3738
result = self.geabase_client.executeGQL(gql, option)
3839
result = json.loads(str(result.getJsonGQLResponse()))
3940
return result
@@ -178,12 +179,15 @@ def get_current_edge(self, src_id, dst_id, edge_type:str = None, return_keys: li
178179
edges = result.get("e", []) or result.get("e.attr", [])
179180
return [GEdge(start_id=edge["start_id"], end_id=edge["end_id"], type=edge["type"], attributes=edge) for edge in edges][0]
180181

181-
def get_neighbor_nodes(self, attributes: dict, node_type: str = None, return_keys: list = []) -> List[GNode]:
182+
def get_neighbor_nodes(self, attributes: dict, node_type: str = None, return_keys: list = [], reverse=False) -> List[GNode]:
182183
#
183184
extra_keys = list(set(return_keys + ["@ID", "id", "@node_type"]))
184185
return_str = ", ".join([f"n1.{k}" for k in extra_keys]) if return_keys else "n1"
185186
where_str = ' and '.join([f"n0.{k}='{v}'" for k, v in attributes.items()])
186-
gql = f"MATCH (n0:{node_type})-[e]->(n1) WHERE {where_str} RETURN {return_str}"
187+
if reverse:
188+
gql = f"MATCH (n0:{node_type} WHERE {where_str})<-[e]-(n1) RETURN {return_str}"
189+
else:
190+
gql = f"MATCH (n0:{node_type})-[e]->(n1) WHERE {where_str} RETURN {return_str}"
187191
#
188192
result = self.execute(gql, return_keys=return_keys)
189193
result = self.decode_result(result, gql)

muagent/db_handler/vector_db_handler/tbase_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ def insert_data_hash(
8484
rr = self.client.expire(key_value, expire_time or self.expire_time)
8585
return len(data_list)
8686

87-
def search(self, query, index_name: str = None, query_params: dict = {}):
87+
def search(self, query, index_name: str = None, query_params: dict = {}, limit=10):
8888
'''
8989
search
9090
:param index_name:
@@ -96,7 +96,7 @@ def search(self, query, index_name: str = None, query_params: dict = {}):
9696
index = self.client.ft(index_name)
9797

9898
if type(query) == str:
99-
query = Query(query)
99+
query = Query(query).paging(0, limit)
100100

101101
res = index.search(query, query_params=query_params)
102102
return res

muagent/schemas/ekg/ekg_graph.py

Lines changed: 88 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from pydantic import BaseModel
22
from typing import List, Dict
33
from enum import Enum
4+
import json
45

56

67
SHAPE2TYPE = {
@@ -54,39 +55,77 @@ class NodeTypesEnum(Enum):
5455
TOOL_INSTANCE = 'opsgptkg_tool_instance'
5556
TEAM = 'opsgptkg_team'
5657
OWNER = 'opsgptkg_owner'
57-
edge = 'edge'
58-
58+
EDGE = 'edge'
5959

6060
# EKG Node and Edge Schemas
6161
class EKGNodeSchema(NodeSchema):
62-
teamid: str
63-
version:str # yyyy-mm-dd HH:MM:SS
62+
teamids: str
63+
# version:str # yyyy-mm-dd HH:MM:SS
6464
extra: str = ''
6565

6666

67+
6768
class EKGEdgeSchema(EdgeSchema):
68-
teamid: str
69-
version:str # yyyy-mm-dd HH:MM:SS
69+
# teamids: str
70+
# version:str # yyyy-mm-dd HH:MM:SS
7071
extra: str = ''
7172

73+
def attrbutes(self, ):
74+
extra_attr = json.loads(self.extra)
75+
return extra_attr
76+
7277

7378
class EKGIntentNodeSchema(EKGNodeSchema):
7479
path: str = ''
7580

81+
def attrbutes(self, ):
82+
extra_attr = json.loads(self.extra)
83+
return {
84+
**{
85+
"name": self.name,
86+
"description": self.description,
87+
"teamids": self.teamids,
88+
"path": self.path
89+
},
90+
**extra_attr
91+
}
7692

7793
class EKGScheduleNodeSchema(EKGNodeSchema):
7894
# do action or not
79-
switch: bool
80-
95+
enable: bool
96+
97+
def attrbutes(self, ):
98+
extra_attr = json.loads(self.extra)
99+
return {
100+
**{
101+
"name": self.name,
102+
"description": self.description,
103+
"teamids": self.teamids,
104+
"enable": self.enable
105+
},
106+
**extra_attr
107+
}
81108

82109
class EKGTaskNodeSchema(EKGNodeSchema):
83-
tool: str
84-
needCheck: bool
110+
# tool: str
111+
# needCheck: bool
85112
# when to access
86113
accessCriteria: str
87114
#
88-
owner: str
89-
115+
# owner: str
116+
117+
def attrbutes(self, ):
118+
extra_attr = json.loads(self.extra)
119+
return {
120+
**{
121+
"name": self.name,
122+
"description": self.description,
123+
"teamids": self.teamids,
124+
"accessCriteria": self.accessCriteria
125+
},
126+
**extra_attr
127+
}
128+
90129

91130
class EKGAnalysisNodeSchema(EKGNodeSchema):
92131
# when to access
@@ -96,19 +135,38 @@ class EKGAnalysisNodeSchema(EKGNodeSchema):
96135
# summary template
97136
dslTemplate: str
98137

138+
def attrbutes(self, ):
139+
extra_attr = json.loads(self.extra)
140+
return {
141+
**{
142+
"name": self.name,
143+
"description": self.description,
144+
"teamids": self.teamids,
145+
"accessCriteria": self.accessCriteria,
146+
"summarySwtich": self.summarySwtich,
147+
"dslTemplate": self.dslTemplate
148+
},
149+
**extra_attr
150+
}
151+
99152

100153
class EKGPhenomenonNodeSchema(EKGNodeSchema):
101-
pass
102-
103-
104-
class EKGPhenomenonNodeSchema(EKGNodeSchema):
105-
pass
106154

155+
def attrbutes(self, ):
156+
extra_attr = json.loads(self.extra)
157+
return {
158+
**{
159+
"name": self.name,
160+
"description": self.description,
161+
"teamids": self.teamids,
162+
},
163+
**extra_attr
164+
}
165+
107166

108167
# Ekg Tool Schemas
109168
class ToolSchema(NodeSchema):
110-
teamid: str
111-
version:str # yyyy-mm-dd HH:MM:SS
169+
# version:str # yyyy-mm-dd HH:MM:SS
112170
extra: str = ''
113171

114172

@@ -137,15 +195,21 @@ class EKGGraphSlsSchema(BaseModel):
137195
# {tool_id},{tool_id},{tool_id}
138196
tool: str = ''
139197
access_criteria: str = ''
140-
teamid: str = ''
198+
teamids: str = ''
199+
extra: str = ''
200+
enable: bool = False
201+
dslTemplate: str = ''
141202

142203

143204
class EKGNodeTbaseSchema(BaseModel):
144205
node_id: str
145206
node_type: str
146-
# node_str = 'graph_id={graph_id}'/teamid, use for searching by graph_id/teamid
207+
# node_str = 'graph_id={graph_id}'/teamids, use for searching by graph_id/teamids
147208
node_str: str
148-
node_vector: List
209+
name_keyword: str
210+
desc_keyword: str
211+
name_vector: List
212+
desc_vector: List
149213

150214

151215
class EKGEdgeTbaseSchema(BaseModel):
@@ -156,7 +220,7 @@ class EKGEdgeTbaseSchema(BaseModel):
156220
edge_source: str
157221
# end_id
158222
edge_target: str
159-
# edge_str = 'graph_id={graph_id}'/teamid, use for searching by graph_id/teamid
223+
# edge_str = 'graph_id={graph_id}'/teamids, use for searching by graph_id/teamids
160224
edge_str: str
161225

162226

@@ -178,7 +242,7 @@ class EKGSlsData(BaseModel):
178242
NodeTypesEnum.SCHEDULE.value: EKGScheduleNodeSchema,
179243
NodeTypesEnum.TOOL.value: EKGPToolTypeSchema,
180244
NodeTypesEnum.TOOL_INSTANCE.value: EKGPToolSchema,
181-
NodeTypesEnum.edge.value: EKGEdgeSchema
245+
NodeTypesEnum.EDGE.value: EKGEdgeSchema
182246
}
183247

184248

0 commit comments

Comments
 (0)