Configure separate OpenAI and Grok keys

This commit is contained in:
Wojtek
2026-10-16 13:04:34 +02:00
parent dc6b5ad3e8
commit 6daca5be59
7 changed files with 56 additions and 20 deletions
@@ -92,7 +92,9 @@ class ResultModel extends BaseDatabaseModel
$params = ComponentHelper::getParams('com_testquestions');
$provider = trim((string) $params->get('ai_provider', 'openai'));
$apiKey = trim((string) $params->get('ai_api_key', ''));
$provider = strtolower(preg_replace('/[^a-z]/', '', $provider));
$keyName = 'ai_' . $provider . '_api_key';
$apiKey = trim((string) $params->get($keyName, $params->get('ai_api_key', '')));
$componentKeyLength = mb_strlen($apiKey);
// Odczytaj zapisane parametry bezpośrednio z bazy. Dzięki temu nie użyjemy
@@ -115,14 +117,21 @@ class ResultModel extends BaseDatabaseModel
if ($storedProvider !== '') {
$provider = $storedProvider;
}
}
if ($storedApiKey !== '' && !preg_match('/^\*+$/', $storedApiKey)) {
$apiKey = $storedApiKey;
}
$provider = strtolower(preg_replace('/[^a-z]/', '', $provider));
$keyName = 'ai_' . $provider . '_api_key';
$apiKey = trim((string) $params->get($keyName, $params->get('ai_api_key', '')));
$componentKeyLength = mb_strlen($apiKey);
$storedApiKey = is_array($storedParams)
? trim((string) ($storedParams[$keyName] ?? $storedParams['ai_api_key'] ?? ''))
: '';
if ($storedApiKey !== '' && !preg_match('/^\*+$/', $storedApiKey)) {
$apiKey = $storedApiKey;
}
if (trim($apiKey) === '') {
$databaseKey = is_array($storedParams) ? trim((string) ($storedParams['ai_api_key'] ?? '')) : '';
$databaseKey = $storedApiKey;
$databaseKeyLength = preg_match('/^\*+$/', $databaseKey) ? 0 : mb_strlen($databaseKey);
throw new \RuntimeException(
'AI_KEY_EMPTY|provider=' . ($provider !== '' ? $provider : '(pusty)')