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.