Basic Memory Usage
The Bupple AI Engine provides a robust memory management system for storing and retrieving conversation history. Here's how to use the basic memory features.
Getting Started
First, import the Engine facade:
php
use Bupple\Engine\Facades\Engine;Adding Messages
Adding User Messages
php
Engine::memory()->addUserMessage('Hello!');Adding Assistant Messages
php
Engine::memory()->addAssistantMessage('Hi! How can I help you today?');Adding System Messages
php
Engine::memory()->addSystemMessage('You are a helpful assistant.');Adding Messages with Custom Role
php
Engine::memory()->addMessage('user', 'Hello!', 'text', [], 'msg_123');The addMessage method accepts:
role: The message role ('user', 'assistant', 'system')content: The message contenttype: Message type (default: 'text')metadata: Additional metadata arraymessageId: Optional unique identifier
Retrieving Messages
Get All Messages
php
$messages = Engine::memory()->getMessages();The messages are returned in chronological order.
Setting Context
Before using memory operations, set the parent context:
php
// For a specific user
Engine::memory()->setParent(User::class, $userId);
// For a chat session
Engine::memory()->setParent('ChatSession', $sessionId);Clearing Memory
Clear all messages for the current context:
php
Engine::memory()->clear();Switching Memory Drivers
You can switch between different memory drivers:
php
// Use file driver
$fileMemory = Engine::driver('file');
// Use database driver
$dbMemory = Engine::driver('database');
// Use Redis driver
$redisMemory = Engine::driver('redis');Message Format
Messages are stored in the following format:
php
[
'role' => 'user|assistant|system',
'content' => 'Message content',
'type' => 'text',
'metadata' => [],
'message_id' => 'optional_unique_id',
'created_at' => 'timestamp'
]Error Handling
Basic error handling:
php
try {
Engine::memory()->addUserMessage('Hello!');
} catch (\RuntimeException $e) {
// Handle memory operation errors
echo "Error: " . $e->getMessage();
}Next Steps
For more advanced usage, including:
- Custom metadata handling
- Media content storage
- Advanced querying
- Custom memory drivers
See the Advanced Memory Usage guide.
