new OpenAIProvider($apiKey), 'anthropic' => new AnthropicProvider($apiKey), 'mistral' => new MistralProvider($apiKey), 'gemini' => new GeminiProvider($apiKey), 'deepseek' => new DeepSeekProvider($apiKey), default => throw new \InvalidArgumentException("Unknown provider: {$provider}") }; } /** * Get list of supported providers * * @return array */ public static function getSupportedProviders(): array { return [ 'openai', 'anthropic', 'mistral', 'gemini', 'deepseek', ]; } /** * Check if a provider is supported * * @param string $provider * @return bool */ public static function isSupported(string $provider): bool { return in_array(strtolower($provider), self::getSupportedProviders()); } }