Users
Just like Sessions
, Users
are a fundamental part of the Zep Memory Store. A User
represents an individual interacting with your application. Each User
can have multiple Sessions
associated with them, allowing you to track and manage the interactions of a user over time.
The UserID
is a unique identifier for each user. This can be any string value - for example, it could be a username, an email address, or a UUID. You can also store additional data related to the user in the metadata
field.
The User
object and its associated Sessions
provide a powerful way to manage and understand the behavior of individuals using your application. By associating Sessions
with Users
, you can track the progression of conversations and interactions over time, providing valuable context and history.
In the following sections, you will learn how to manage Users
and their associated Sessions
.
The User
model
You can associate rich business context with a User
:
user_id
: A unique identifier of the user that maps to your internal User ID.email
: The user's email.first_name
: The user's first name.last_name
: The user's last name.metadata
: Any additional data associated with the user.
Adding a User
You can add a new user by providing the user details.
user_request = CreateUserRequest(
user_id=user_id,
email="[email protected]",
first_name="Jane",
last_name="Smith",
metadata={"foo": "bar"},
)
new_user = client.user.add(user_request)
Learn how to associate
Sessions
with Users
Getting a User
You can retrieve a user by their ID.
Updating a User
You can update a user's details by providing the updated user details.
user_request = UpdateUserRequest(
user_id=user_id,
email="[email protected]",
first_name="Jane",
last_name="Smith",
metadata={"foo": "updated_bar"},
)
updated_user = client.user.update(user_request)
Deleting a User
You can delete a user by their ID.
Getting a User's Sessions
You can retrieve all Sessions
for a user by their ID.
Listing Users
You can list all users, with optional limit and cursor parameters for pagination.
Listing Users in Chunks
You can retrieve users in chunks of a specified size. This is a generator function that yields each chunk of users as they are retrieved.