'API rate limit exceeded. Please wait and try again.', 'quota_exceeded' => 'OpenAI quota exceeded. Please check your billing.', 'invalid_request' => 'Invalid request to GPT API.', 'auth_error' => 'Authentication failed. Check API key.', 'network_error' => 'Network error. Check internet connection.', 'server_error' => 'OpenAI server error. Try again later.', 'unknown_error' => 'Unknown error occurred.' ]); // Cost tracking files define('COST_LOG_FILE', __DIR__ . '/../logs/cost_tracking.log'); define('DAILY_COST_FILE', __DIR__ . '/../logs/daily_cost.json'); // Debug logging define('DEBUG_RATE_LIMITS', true); define('RATE_LIMIT_LOG_FILE', __DIR__ . '/../logs/rate_limit_debug.log'); // Ensure logs directory exists if (!$is_cli) { $log_dir = __DIR__ . '/../logs'; if (!is_dir($log_dir)) { @mkdir($log_dir, 0755, true); } // Log optimization mode activation error_log("Syndia: Optimized for OpenAI Tier 1 - Using gpt-4o-mini with 120 RPM"); } // *** MISSING CONSTANTS ADDED *** // Cost estimation constants (gpt-4o-mini pricing) define('GPT4OMINI_COST_PER_1K_INPUT_TOKENS', 0.000150); // $0.00015 per 1K input tokens define('GPT4OMINI_COST_PER_1K_OUTPUT_TOKENS', 0.000600); // $0.0006 per 1K output tokens // Legacy constants for backward compatibility define('GPT35_COST_PER_1K_TOKENS', 0.002); // $0.002 per 1K tokens (GPT-3.5) define('GPT4_COST_PER_1K_TOKENS', 0.030); // $0.03 per 1K tokens (GPT-4) // Token estimation constants define('AVERAGE_INPUT_TOKENS_PER_REQUEST', 150); // Conservative estimate define('AVERAGE_OUTPUT_TOKENS_PER_REQUEST', 50); // Conservative estimate define('AVERAGE_TOKENS_PER_REQUEST', 200); // Total average // Performance tracking define('ENABLE_PERFORMANCE_TRACKING', true); define('PERFORMANCE_LOG_FILE', __DIR__ . '/../logs/performance.log'); ?>