diff --git a/lib/Service/OpenAiSettingsService.php b/lib/Service/OpenAiSettingsService.php index a81c11d6..41c93323 100644 --- a/lib/Service/OpenAiSettingsService.php +++ b/lib/Service/OpenAiSettingsService.php @@ -679,6 +679,7 @@ public function setAdminConfig(array $adminConfig): void { } } + $quotaDisabled = $this->config->getSystemValue('integration_openai.disable_webui_quota', false); // Validation of the input values is done in the individual setters if (isset($adminConfig['request_timeout'])) { $this->setRequestTimeout($adminConfig['request_timeout']); @@ -722,10 +723,10 @@ public function setAdminConfig(array $adminConfig): void { if (isset($adminConfig['llm_extra_params'])) { $this->setLlmExtraParams($adminConfig['llm_extra_params']); } - if (isset($adminConfig['quota_period'])) { + if (isset($adminConfig['quota_period']) && !$quotaDisabled) { $this->setQuotaPeriod($adminConfig['quota_period']); } - if (isset($adminConfig['quotas'])) { + if (isset($adminConfig['quotas']) && !$quotaDisabled) { $this->setQuotas($adminConfig['quotas']); } if (isset($adminConfig['use_max_completion_tokens_param'])) { diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php index 6f1a89c5..000ce104 100644 --- a/lib/Settings/Admin.php +++ b/lib/Settings/Admin.php @@ -12,6 +12,7 @@ use OCP\App\IAppManager; use OCP\AppFramework\Http\TemplateResponse; use OCP\AppFramework\Services\IInitialState; +use OCP\IConfig; use OCP\Settings\ISettings; class Admin implements ISettings { @@ -19,6 +20,7 @@ public function __construct( private IInitialState $initialStateService, private OpenAiSettingsService $openAiSettingsService, private IAppManager $appManager, + private IConfig $config, ) { } @@ -31,6 +33,7 @@ public function getForm(): TemplateResponse { $adminConfig['basic_password'] = $adminConfig['basic_password'] === '' ? '' : 'dummyPassword'; $isAssistantEnabled = $this->appManager->isEnabledForUser('assistant'); $adminConfig['assistant_enabled'] = $isAssistantEnabled; + $adminConfig['disable_webui_quota'] = $this->config->getSystemValue('integration_openai.disable_webui_quota', false); $this->initialStateService->provideInitialState('admin-config', $adminConfig); return new TemplateResponse(Application::APP_ID, 'adminSettings'); } diff --git a/src/components/AdminSettings.vue b/src/components/AdminSettings.vue index e630f615..bf852b24 100644 --- a/src/components/AdminSettings.vue +++ b/src/components/AdminSettings.vue @@ -498,6 +498,9 @@

{{ t('integration_openai', 'Usage limits') }}

+ + {{ t('integration_openai', 'The webui for quota enforcement is disabled in the config.') }} +