Find Facts Relevant to a Specific Node

Below, we will go through how to retrieve facts which are related to a specific node in a Zep knowledge graph. First, we will go through some methods for determining the UUID of the node you are interested in. Then, we will go through some methods for retrieving the facts related to that node.

The easiest way to determine the UUID of your desired node is to use the graph explorer in the Zep Web app.

You can also programmatically retrieve all the nodes for a given user using our get nodes by user API, and then manually examine the nodes and take note of the UUID of the node of interest:

1# Initialize the Zep client
2zep_client = AsyncZep(api_key=API_KEY)
3nodes = await zep_client.graph.node.get_by_user_id(user_id="some user ID")
4print(nodes)
1center_node_uuid = "your chosen center node UUID"

Lastly, if your user has a lot of nodes to look through, you can narrow down the search by only looking at the nodes relevant to a specific query, using our graph search API:

1results = await zep_client.graph.search(
2 user_id="some user ID",
3 query="shoe", # To help narrow down the nodes you have to manually search
4 scope="nodes"
5)
6relevant_nodes = results.nodes
7print(relevant_nodes)
1center_node_uuid = "your chosen center node UUID"

The most straightforward way to get facts related to your node is to retrieve all facts that are connected to your chosen node using the get edges by user API:

1edges = await zep_client.graph.edge.get_by_user_id(user_id="some user ID")
2connected_edges = [edge for edge in edges if edge.source_node_uuid == center_node_uuid or edge.target_node_uuid == center_node_uuid]
3relevant_facts = [edge.fact for edge in connected_edges]

You can also retrieve facts relevant to your node by using the graph search API with the node distance re-ranker:

1results = await zep_client.graph.search(
2 user_id="some user ID",
3 query="some query",
4 reranker="node_distance",
5 center_node_uuid=center_node_uuid,
6)
7relevant_edges = results.edges
8relevant_facts = [edge.fact for edge in relevant_edges]

In this recipe, we went through how to retrieve facts which are related to a specific node in a Zep knowledge graph. We first went through some methods for determining the UUID of the node you are interested in. Then, we went through some methods for retrieving the facts related to that node.

Built with