Configuration 
The Bupple AI Engine configuration is managed through the config/bupple-engine.php file and environment variables.
Engine Configuration 
Default Engine 
You can set the default AI engine driver in your .env file:
env
BUPPLE_DEFAULT_ENGINE_DRIVER=openaiSupported values: openai, gemini, claude
OpenAI Configuration 
php
'openai' => [
    'api_key' => env('BUPPLE_ENGINE_OPENAI_API_KEY'),
    'model' => env('BUPPLE_ENGINE_OPENAI_MODEL', 'gpt-4'),
    'temperature' => env('BUPPLE_ENGINE_OPENAI_TEMPERATURE', 0.7),
    'max_tokens' => env('BUPPLE_ENGINE_OPENAI_MAX_TOKENS', 1000),
    'organization_id' => env('BUPPLE_ENGINE_OPENAI_ORGANIZATION_ID', null),
],Google Gemini Configuration 
php
'gemini' => [
    'api_key' => env('BUPPLE_ENGINE_GEMINI_API_KEY'),
    'model' => env('BUPPLE_ENGINE_GEMINI_MODEL', 'gemini-pro'),
    'temperature' => env('BUPPLE_ENGINE_GEMINI_TEMPERATURE', 0.7),
    'max_tokens' => env('BUPPLE_ENGINE_GEMINI_MAX_TOKENS', 1000),
    'project_id' => env('BUPPLE_ENGINE_GEMINI_PROJECT_ID', null),
],Anthropic Claude Configuration 
php
'claude' => [
    'api_key' => env('BUPPLE_ENGINE_CLAUDE_API_KEY'),
    'model' => env('BUPPLE_ENGINE_CLAUDE_MODEL', 'claude-3-opus-20240229'),
    'temperature' => env('BUPPLE_ENGINE_CLAUDE_TEMPERATURE', 0.7),
    'max_tokens' => env('BUPPLE_ENGINE_CLAUDE_MAX_TOKENS', 1000),
],Memory Configuration 
Default Memory Driver 
Set the default memory storage driver:
env
BUPPLE_MEMORY_DRIVER=fileSupported values: file, database, redis
Database Driver Configuration 
php
'database' => [
    'mongodb_enabled' => env('BUPPLE_MEMORY_DB_MONGODB_ENABLED', false),
    'connection' => env('BUPPLE_MEMORY_DB_CONNECTION', env('DB_CONNECTION', 'mysql')),
    'table_name' => env('BUPPLE_MEMORY_DB_TABLE_NAME', 'engine_memory'),
],File Driver Configuration 
php
'file' => [
    'path' => storage_path(env('BUPPLE_MEMORY_FILE_PATH', 'app/engine-memory')),
],Redis Driver Configuration 
php
'redis' => [
    'connection' => env('BUPPLE_MEMORY_REDIS_CONNECTION', 'redis'),
    'key' => env('BUPPLE_MEMORY_REDIS_KEY', 'engine_memory'),
    'ttl' => env('BUPPLE_MEMORY_REDIS_TTL', 60 * 60 * 24 * 30), // 30 days
],Configuration Methods 
Runtime Configuration 
You can modify configuration at runtime using the config method:
php
use Bupple\Engine\Facades\Engine;
// Get configuration
$config = Engine::config();
// Get specific configuration value
$model = Engine::config('engine.openai.model');
// Set configuration value
Engine::config(['engine.openai.model' => 'gpt-4-turbo']);Environment Variables 
All configuration values can be set through environment variables. The package follows Laravel's environment variable naming convention:
- All uppercase
- Words separated by underscores
- Prefixed with BUPPLE_
For example:
- BUPPLE_DEFAULT_ENGINE_DRIVER
- BUPPLE_ENGINE_OPENAI_API_KEY
- BUPPLE_MEMORY_DRIVER
Configuration Validation 
The package validates your configuration during initialization. If any required values are missing or invalid, it will throw appropriate exceptions with descriptive messages.
