Add AI model selection per provider
This commit is contained in:
@@ -9,6 +9,7 @@ use Joomla\CMS\Language\Text;
|
||||
use Joomla\CMS\MVC\Controller\BaseController;
|
||||
use Joomla\CMS\Router\Route;
|
||||
use Joomla\CMS\Session\Session;
|
||||
use Komponent\Component\Testquestions\Administrator\Service\AiService;
|
||||
|
||||
class AiController extends BaseController
|
||||
{
|
||||
@@ -29,6 +30,16 @@ class AiController extends BaseController
|
||||
throw new \RuntimeException(Text::_('COM_TESTQUESTIONS_AI_PROVIDER_INVALID'));
|
||||
}
|
||||
|
||||
$models = AiService::availableModels();
|
||||
$selectedModels = [];
|
||||
foreach (['openai', 'grok'] as $modelProvider) {
|
||||
$model = $input->post->getCmd('ai_' . $modelProvider . '_model', '');
|
||||
if (!isset($models[$modelProvider][$model])) {
|
||||
throw new \RuntimeException(Text::_('COM_TESTQUESTIONS_AI_MODEL_INVALID'));
|
||||
}
|
||||
$selectedModels[$modelProvider] = $model;
|
||||
}
|
||||
|
||||
$db = Factory::getContainer()->get('DatabaseDriver');
|
||||
$row = $db->setQuery(
|
||||
$db->getQuery(true)
|
||||
@@ -47,6 +58,9 @@ class AiController extends BaseController
|
||||
$legacyKey = trim((string) ($settings['ai_api_key'] ?? ''));
|
||||
|
||||
$settings['ai_provider'] = $provider;
|
||||
foreach ($selectedModels as $modelProvider => $model) {
|
||||
$settings['ai_' . $modelProvider . '_model'] = $model;
|
||||
}
|
||||
foreach (['openai', 'grok'] as $keyProvider) {
|
||||
$fieldName = 'ai_' . $keyProvider . '_api_key';
|
||||
$apiKey = trim((string) $input->post->get($fieldName, '', 'RAW'));
|
||||
|
||||
Reference in New Issue
Block a user