Add Gemini API as an AI provider

This commit is contained in:
Wojtek
2026-10-16 22:41:08 +02:00
parent 8045698072
commit 686e927249
13 changed files with 89 additions and 28 deletions
@@ -36,13 +36,13 @@ class AiController extends BaseController
$input = Factory::getApplication()->getInput();
$provider = strtolower($input->post->getCmd('ai_provider', ''));
if (!in_array($provider, ['openai', 'grok', 'groq'], true)) {
if (!in_array($provider, ['openai', 'grok', 'groq', 'gemini'], true)) {
throw new \RuntimeException(Text::_('COM_TESTQUESTIONS_AI_PROVIDER_INVALID'));
}
$models = AiService::availableModels();
$selectedModels = [];
foreach (['openai', 'grok', 'groq'] as $modelProvider) {
foreach (['openai', 'grok', 'groq', 'gemini'] as $modelProvider) {
$model = trim($input->post->getString('ai_' . $modelProvider . '_model', ''));
if (!isset($models[$modelProvider][$model])) {
throw new \RuntimeException(Text::_('COM_TESTQUESTIONS_AI_MODEL_INVALID'));
@@ -71,7 +71,7 @@ class AiController extends BaseController
$settings['ai_' . $modelProvider . '_model'] = $model;
}
foreach (['openai', 'grok', 'groq'] as $keyProvider) {
foreach (['openai', 'grok', 'groq', 'gemini'] as $keyProvider) {
$fieldName = 'ai_' . $keyProvider . '_api_key';
$apiKey = trim((string) $input->post->get($fieldName, '', 'RAW'));
if ($apiKey !== '') {