from _004_langgraph_more_nodes.agent_state import AgentState
from common.neo4j_manager import neo4j_client
def check_cypher_node(state:AgentState):
print("cypher检查节点执行开始了")
cypher_query_list = state.get("cypher_query") or []
# 空列表判 False。"空集合全部合法"逻辑上成立,但这个标志位是给路由用的:
# 没有语句可执行时必须走兜底,判 True 会让下游拿着空列表白查一趟。
if not cypher_query_list:
state['is_all_validate_cypher'] = False
print("完成检查cypher语句:False(没有语句)")
return state
state['is_all_validate_cypher'] = True
for cypher_query in cypher_query_list:
if not neo4j_client.validate_cypher(cypher_query):
state['is_all_validate_cypher'] = False
break
print(f"完成检查cypher语句:{state['is_all_validate_cypher']}")
return state
if __name__ == '__main__':
print(check_cypher_node({"cypher_query":["MATC1H (e:Employee) RETURN e.id, e.name, e.salary, e.deptno"]}))