botserver/docs/src/chapter-05/keyword-set-user.md

69 lines
2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SET_USER Keyword
The **SET_USER** keyword defines the active user context for the current bot session.
It associates all subsequent actions, memory entries, and responses with a specific user identity.
---
## Syntax
```basic
SET_USER "user-id"
```
---
## Parameters
- `"user-id"` — A unique identifier (UUID or username) representing the user.
This value is used to link session data, memory, and logs to the correct user record.
---
## Description
`SET_USER` updates the bots internal session to reflect the specified user identity.
This is typically used after authentication or when switching between users in multi-user environments.
Once set, all commands such as `SET_CONTEXT`, `SET_BOT_MEMORY`, and `FIND` operate within the scope of that user.
If the user ID does not exist in the database, the system automatically creates a new user record.
The command ensures that the session token and memory cache are properly synchronized.
---
## Example
```basic
' Set the active user for the session
SET_USER "john_doe"
' Store personalized memory
SET_BOT_MEMORY "preferred_language" "English"
' Retrieve user-specific data
FIND "recent orders"
```
---
## Implementation Notes
- Implemented in Rust under `src/session/mod.rs` and `src/org/mod.rs`.
- The keyword interacts with the session manager to update the active user ID.
- It ensures that all subsequent operations are scoped to the correct user context.
- If cache component or database caching is enabled, the user ID is stored for persistence across sessions.
---
## Related Keywords
- [`SET_CONTEXT`](keyword-set-context.md) — Defines the operational context for the session.
- [`SET_BOT_MEMORY`](keyword-set-bot-memory.md) — Stores persistent data for the bot or user.
- [`GET_BOT_MEMORY`](keyword-get-bot-memory.md) — Retrieves stored memory entries.
---
## Summary
`SET_USER` is essential for maintaining user-specific state and personalization in GeneralBots.
It ensures that each session operates independently and securely under the correct user identity.