Groups

Group graphs can be used to create and manage additional non-user specific graphs.

A user graph is tied to a specific user; a group graph is just like a user graph, except it is not tied to a specific user. It is best thought of as an “arbitrary graph” which, for example, can be used as memory for a group of users, or for a more complex use case.

For example, a group graph could store information about a company’s product, which you might not want to add to every user’s graph, because that would be redundant. And when your chatbot responds, it could utilize a memory context string from both that user’s graph as well as from the product group graph. See our cookbook on this for an example.

A more complicated use case could be to create a group graph which is used when a certain topic is mentioned as opposed to when certain users require a response. For instance, anytime any user mentions “pizza” in a chat, that could trigger a call to a group graph about pizza.

You do not need to add/register users with a group. Instead, you just retrieve memory from the group graph when responding to any of the users you want in the group.

Creating a Group

1group = client.group.add(
2 group_id="some-group-id",
3 description="This is a description.",
4 name="Group Name"
5)

Adding Data to a Group Graph

Adding data to a group graph requires using the graph.add method. Below is an example, and for more on this method, see Adding Data to the Graph and our SDK Reference.

1client.graph.add(
2 group_id=group_id,
3 data="Hello world!",
4 type="text",
5)

Searching a Group Graph

Searching a group graph requires using the graph.search method. Below is an example, and for more on this method, see Searching the Graph and our SDK Reference.

1search_results = client.graph.search(
2 group_id=group_id,
3 query="Banana",
4 scope="nodes",
5)

Deleting a Group

1client.group.delete(group_id)