From 08ac3f9de6c5ad0c2d2b097cda95f3d5cd392ec5 Mon Sep 17 00:00:00 2001 From: Susanne Moog Date: Thu, 9 Apr 2026 12:52:17 +0200 Subject: [PATCH] [BUGFIX] Make Gemini model configurable and update default model Replace the outdated hardcoded Gemini model with a configurable setup and set a working default model. - Add model configuration via `geminiModel` extension setting - Support overriding model via `GOOGLE_GEMINI_MODEL` environment variable Resolves: #1 --- Classes/Domain/Repository/Llm/GeminiRepository.php | 3 ++- Classes/Utility/ConfigurationUtility.php | 7 +++++++ ext_conf_template.txt | 3 +++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Classes/Domain/Repository/Llm/GeminiRepository.php b/Classes/Domain/Repository/Llm/GeminiRepository.php index 69376d6..09f3e93 100644 --- a/Classes/Domain/Repository/Llm/GeminiRepository.php +++ b/Classes/Domain/Repository/Llm/GeminiRepository.php @@ -13,13 +13,14 @@ class GeminiRepository extends AbstractRepository implements RepositoryInterface { private string $apiKey = ''; private string $apiUrl = 'https://generativelanguage.googleapis.com/v1beta/models/'; - private string $model = 'gemini-2.0-flash-exp:generateContent'; + private string $model = ''; public function __construct( protected RequestFactory $requestFactory, ) { parent::__construct($requestFactory); $this->apiKey = getenv('GOOGLE_API_KEY') ?: ConfigurationUtility::getConfigurationByKey('apiKey') ?: ''; + $this->model = ConfigurationUtility::getModel(); } public function checkApiKey(): void diff --git a/Classes/Utility/ConfigurationUtility.php b/Classes/Utility/ConfigurationUtility.php index 25063a2..be63036 100644 --- a/Classes/Utility/ConfigurationUtility.php +++ b/Classes/Utility/ConfigurationUtility.php @@ -9,6 +9,8 @@ class ConfigurationUtility { + private const DEFAULT_GEMINI_MODEL = 'gemini-2.5-flash-lite:generateContent'; + public static function getConfigurationByKey(string $key): string { $configuration = GeneralUtility::makeInstance(ExtensionConfiguration::class)->get('sitescore'); @@ -19,4 +21,9 @@ public static function getApiKey(): string { return getenv('GOOGLE_API_KEY') ?: self::getConfigurationByKey('apiKey') ?: ''; } + + public static function getModel(): string + { + return getenv('GOOGLE_GEMINI_MODEL') ?: self::getConfigurationByKey('geminiModel') ?: self::DEFAULT_GEMINI_MODEL; + } } diff --git a/ext_conf_template.txt b/ext_conf_template.txt index fecb6fa..4116aae 100644 --- a/ext_conf_template.txt +++ b/ext_conf_template.txt @@ -1,2 +1,5 @@ # cat=advanced//100; type=text; label= Gemini API key: Better use env GOOGLE_API_KEY instead apiKey = + +# cat=advanced//110; type=text; label= Gemini model: Better use env GOOGLE_GEMINI_MODEL instead +geminiModel =