diff --git a/lib/OldProcessing/Translation/TranslationProvider.php b/lib/OldProcessing/Translation/TranslationProvider.php index 71daba31..b9d6da0e 100644 --- a/lib/OldProcessing/Translation/TranslationProvider.php +++ b/lib/OldProcessing/Translation/TranslationProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; use OCA\OpenAi\Service\TranslateService; -use OCP\IAppConfig; use OCP\ICacheFactory; use OCP\Translation\IDetectLanguageProvider; use OCP\Translation\ITranslationProvider; @@ -27,7 +26,6 @@ public function __construct( private ICacheFactory $cacheFactory, private OpenAiAPIService $openAiAPIService, private LoggerInterface $logger, - private IAppConfig $appConfig, private ?string $userId, private OpenAiSettingsService $openAiSettingsService, ) { @@ -69,7 +67,7 @@ public function getAvailableLanguages(): array { public function detectLanguage(string $text): ?string { $prompt = 'What language is this (answer with the language name only, in English): ' . $text; - $adminModel = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); try { if ($this->openAiAPIService->isUsingOpenAi() || $this->openAiSettingsService->getChatEndpointEnabled()) { $completion = $this->openAiAPIService->createChatCompletion($this->userId, $adminModel, $prompt, null, null, 1, 100); @@ -107,7 +105,7 @@ public function translate(?string $fromLanguage, string $toLanguage, string $tex $this->logger->debug('OpenAI translation TO[' . $toLanguage . ']', ['app' => Application::APP_ID]); $prompt = 'Translate to ' . $toLanguage . ': ' . $text; } - $adminModel = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); if ($this->openAiAPIService->isUsingOpenAi() || $this->openAiSettingsService->getChatEndpointEnabled()) { $completion = $this->openAiAPIService->createChatCompletion($this->userId, $adminModel, $prompt, null, null, 1, PHP_INT_MAX); diff --git a/lib/TaskProcessing/AnalyzeImagesProvider.php b/lib/TaskProcessing/AnalyzeImagesProvider.php index 1b74cc47..b852f01b 100644 --- a/lib/TaskProcessing/AnalyzeImagesProvider.php +++ b/lib/TaskProcessing/AnalyzeImagesProvider.php @@ -13,7 +13,6 @@ use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; use OCP\Files\File; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -28,7 +27,6 @@ public function __construct( private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private LoggerInterface $logger, - private IAppConfig $appConfig, private ?string $userId, ) { } @@ -83,9 +81,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -167,7 +163,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_COMPLETION_MODEL_ID, lazy: true) ?: Application::DEFAULT_COMPLETION_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $maxTokens = null; diff --git a/lib/TaskProcessing/AudioToAudioChatProvider.php b/lib/TaskProcessing/AudioToAudioChatProvider.php index 5c5bc2c9..5c5fac24 100644 --- a/lib/TaskProcessing/AudioToAudioChatProvider.php +++ b/lib/TaskProcessing/AudioToAudioChatProvider.php @@ -12,6 +12,7 @@ use Exception; use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; +use OCA\OpenAi\Service\OpenAiSettingsService; use OCP\Files\File; use OCP\IAppConfig; use OCP\IL10N; @@ -39,6 +40,7 @@ public function __construct( private IL10N $l, private LoggerInterface $logger, private IAppConfig $appConfig, + private OpenAiSettingsService $openAiSettingsService, private ?string $userId, ) { } @@ -125,7 +127,7 @@ public function getOptionalInputShapeDefaults(): array { $adminVoice = $this->appConfig->getValueString(Application::APP_ID, 'default_speech_voice', lazy: true) ?: Application::DEFAULT_SPEECH_VOICE; $adminLlmModel = $isUsingOpenAi ? 'gpt-4o-audio-preview' - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + : $this->openAiSettingsService->getAdminDefaultCompletionModelId(); $defaults = [ 'voice' => $adminVoice, 'llm_model' => $adminLlmModel, @@ -194,7 +196,7 @@ public function process(?string $userId, array $input, callable $reportProgress) $isUsingOpenAi = $this->openAiAPIService->isUsingOpenAi(); $llmModel = $isUsingOpenAi ? 'gpt-4o-audio-preview' - : ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID); + : $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } diff --git a/lib/TaskProcessing/ChangeToneProvider.php b/lib/TaskProcessing/ChangeToneProvider.php index 9afcd292..c3f883de 100644 --- a/lib/TaskProcessing/ChangeToneProvider.php +++ b/lib/TaskProcessing/ChangeToneProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -27,7 +26,6 @@ class ChangeToneProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ChunkService $chunkService, @@ -95,9 +93,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -133,7 +129,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $chunks = $this->chunkService->chunkSplitPrompt($textInput, true, $maxTokens); diff --git a/lib/TaskProcessing/ContextWriteProvider.php b/lib/TaskProcessing/ContextWriteProvider.php index 719ac8df..f08d038d 100644 --- a/lib/TaskProcessing/ContextWriteProvider.php +++ b/lib/TaskProcessing/ContextWriteProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -26,7 +25,6 @@ class ContextWriteProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private ChunkService $chunkService, private IL10N $l, @@ -80,9 +78,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -122,7 +118,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $chunks = $this->chunkService->chunkSplitPrompt($sourceMaterial, true, $maxTokens); diff --git a/lib/TaskProcessing/EmojiProvider.php b/lib/TaskProcessing/EmojiProvider.php index 10926f57..6cf88a82 100644 --- a/lib/TaskProcessing/EmojiProvider.php +++ b/lib/TaskProcessing/EmojiProvider.php @@ -13,7 +13,6 @@ use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -25,7 +24,6 @@ class EmojiProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ?string $userId, @@ -78,9 +76,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => 100, 'model' => $adminModel, @@ -116,7 +112,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } try { diff --git a/lib/TaskProcessing/HeadlineProvider.php b/lib/TaskProcessing/HeadlineProvider.php index 37c734cd..7521fbbb 100644 --- a/lib/TaskProcessing/HeadlineProvider.php +++ b/lib/TaskProcessing/HeadlineProvider.php @@ -13,7 +13,6 @@ use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -25,7 +24,6 @@ class HeadlineProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ?string $userId, @@ -78,9 +76,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => 100, 'model' => $adminModel, @@ -116,7 +112,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } try { diff --git a/lib/TaskProcessing/ProofreadProvider.php b/lib/TaskProcessing/ProofreadProvider.php index bd1b42a7..b035d434 100644 --- a/lib/TaskProcessing/ProofreadProvider.php +++ b/lib/TaskProcessing/ProofreadProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -26,7 +25,6 @@ class ProofreadProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ChunkService $chunkService, @@ -80,9 +78,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -118,7 +114,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $chunks = $this->chunkService->chunkSplitPrompt($textInput, true, $maxTokens); diff --git a/lib/TaskProcessing/ReformulateProvider.php b/lib/TaskProcessing/ReformulateProvider.php index f27b37d9..60de4fa9 100644 --- a/lib/TaskProcessing/ReformulateProvider.php +++ b/lib/TaskProcessing/ReformulateProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -26,7 +25,6 @@ class ReformulateProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ChunkService $chunkService, @@ -80,9 +78,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -117,7 +113,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $chunks = $this->chunkService->chunkSplitPrompt($prompt, true, $maxTokens); $result = ''; diff --git a/lib/TaskProcessing/SummaryProvider.php b/lib/TaskProcessing/SummaryProvider.php index 30a89d8d..bddbd386 100644 --- a/lib/TaskProcessing/SummaryProvider.php +++ b/lib/TaskProcessing/SummaryProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -26,7 +25,6 @@ class SummaryProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ChunkService $chunkService, @@ -80,9 +78,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, diff --git a/lib/TaskProcessing/TextToTextChatProvider.php b/lib/TaskProcessing/TextToTextChatProvider.php index c50d7cc3..6151f451 100644 --- a/lib/TaskProcessing/TextToTextChatProvider.php +++ b/lib/TaskProcessing/TextToTextChatProvider.php @@ -12,7 +12,7 @@ use Exception; use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; -use OCP\IAppConfig; +use OCA\OpenAi\Service\OpenAiSettingsService; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -24,7 +24,7 @@ class TextToTextChatProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, + private OpenAiSettingsService $openAiSettingsService, private IL10N $l, ) { } @@ -90,7 +90,7 @@ public function getOptionalOutputShapeEnumValues(): array { public function process(?string $userId, array $input, callable $reportProgress): array { $startTime = time(); - $adminModel = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_COMPLETION_MODEL_ID, lazy: true) ?: Application::DEFAULT_COMPLETION_MODEL_ID; + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); if (!isset($input['input']) || !is_string($input['input'])) { throw new RuntimeException('Invalid input'); diff --git a/lib/TaskProcessing/TextToTextChatWithToolsProvider.php b/lib/TaskProcessing/TextToTextChatWithToolsProvider.php index b3173387..e2257978 100644 --- a/lib/TaskProcessing/TextToTextChatWithToolsProvider.php +++ b/lib/TaskProcessing/TextToTextChatWithToolsProvider.php @@ -12,7 +12,7 @@ use Exception; use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; -use OCP\IAppConfig; +use OCA\OpenAi\Service\OpenAiSettingsService; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -24,7 +24,7 @@ class TextToTextChatWithToolsProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, + private OpenAiSettingsService $openAiSettingsService, private IL10N $l, ) { } @@ -85,7 +85,7 @@ public function getOptionalOutputShapeEnumValues(): array { public function process(?string $userId, array $input, callable $reportProgress): array { $startTime = time(); - $adminModel = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_COMPLETION_MODEL_ID, lazy: true) ?: Application::DEFAULT_COMPLETION_MODEL_ID; + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); if (!isset($input['input']) || !is_string($input['input'])) { throw new RuntimeException('Invalid input'); diff --git a/lib/TaskProcessing/TextToTextProvider.php b/lib/TaskProcessing/TextToTextProvider.php index 3a5d89cd..7a18be7f 100644 --- a/lib/TaskProcessing/TextToTextProvider.php +++ b/lib/TaskProcessing/TextToTextProvider.php @@ -13,7 +13,6 @@ use OCA\OpenAi\AppInfo\Application; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -25,7 +24,6 @@ class TextToTextProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ?string $userId, @@ -78,9 +76,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -121,7 +117,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } try { diff --git a/lib/TaskProcessing/TopicsProvider.php b/lib/TaskProcessing/TopicsProvider.php index 4b581cb6..43adc047 100644 --- a/lib/TaskProcessing/TopicsProvider.php +++ b/lib/TaskProcessing/TopicsProvider.php @@ -14,7 +14,6 @@ use OCA\OpenAi\Service\ChunkService; use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; -use OCP\IAppConfig; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; use OCP\TaskProcessing\ISynchronousProvider; @@ -27,7 +26,6 @@ class TopicsProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ChunkService $chunkService, @@ -82,9 +80,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -119,7 +115,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } $prompts = $this->chunkService->chunkSplitPrompt($prompt); $newNumChunks = count($prompts); diff --git a/lib/TaskProcessing/TranslateProvider.php b/lib/TaskProcessing/TranslateProvider.php index c6c3d3c5..c1eaf42a 100644 --- a/lib/TaskProcessing/TranslateProvider.php +++ b/lib/TaskProcessing/TranslateProvider.php @@ -15,7 +15,6 @@ use OCA\OpenAi\Service\OpenAiAPIService; use OCA\OpenAi\Service\OpenAiSettingsService; use OCA\OpenAi\Service\TranslateService; -use OCP\IAppConfig; use OCP\ICacheFactory; use OCP\IL10N; use OCP\TaskProcessing\EShapeType; @@ -54,7 +53,6 @@ class TranslateProvider implements ISynchronousProvider { public function __construct( private OpenAiAPIService $openAiAPIService, - private IAppConfig $appConfig, private OpenAiSettingsService $openAiSettingsService, private IL10N $l, private ICacheFactory $cacheFactory, @@ -120,9 +118,7 @@ public function getOptionalInputShapeEnumValues(): array { } public function getOptionalInputShapeDefaults(): array { - $adminModel = $this->openAiAPIService->isUsingOpenAi() - ? ($this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID) - : $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', lazy: true); + $adminModel = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); return [ 'max_tokens' => $this->openAiSettingsService->getMaxTokens(), 'model' => $adminModel, @@ -153,7 +149,7 @@ public function process(?string $userId, array $input, callable $reportProgress) if (isset($input['model']) && is_string($input['model'])) { $model = $input['model']; } else { - $model = $this->appConfig->getValueString(Application::APP_ID, 'default_completion_model_id', Application::DEFAULT_MODEL_ID, lazy: true) ?: Application::DEFAULT_MODEL_ID; + $model = $this->openAiSettingsService->getAdminDefaultCompletionModelId(); } if (!isset($input['input']) || !is_string($input['input'])) { diff --git a/tests/unit/Providers/OpenAiProviderTest.php b/tests/unit/Providers/OpenAiProviderTest.php index 1c5ee39a..447fef85 100644 --- a/tests/unit/Providers/OpenAiProviderTest.php +++ b/tests/unit/Providers/OpenAiProviderTest.php @@ -35,7 +35,6 @@ use OCP\ICacheFactory; use OCP\TaskProcessing\TaskTypes\TextToTextReformatParagraphs; use PHPUnit\Framework\MockObject\MockObject; -use Psr\Log\LoggerInterface; use Test\TestCase; use Test\Util\User\Dummy; @@ -115,11 +114,9 @@ public static function tearDownAfterClass(): void { public function testFreePromptProvider(): void { $freePromptProvider = new TextToTextProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), self::TEST_USER1, - \OCP\Server::get(LoggerInterface::class), ); $prompt = 'This is a test prompt'; @@ -178,7 +175,6 @@ public function testFreePromptProvider(): void { public function testEmojiProvider(): void { $emojiProvider = new EmojiProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), self::TEST_USER1, @@ -243,7 +239,6 @@ public function testEmojiProvider(): void { public function testHeadlineProvider(): void { $headlineProvider = new HeadlineProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), self::TEST_USER1, @@ -307,7 +302,6 @@ public function testHeadlineProvider(): void { public function testChangeToneProvider(): void { $changeToneProvider = new ChangeToneProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), $this->chunkService, @@ -374,7 +368,6 @@ public function testChangeToneProvider(): void { public function testSummaryProvider(): void { $summaryProvider = new SummaryProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), $this->chunkService, @@ -443,7 +436,6 @@ public function testSummaryProvider(): void { public function testProofreadProvider(): void { $proofreadProvider = new ProofreadProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), $this->chunkService, @@ -511,7 +503,6 @@ public function testProofreadProvider(): void { public function testTranslationProvider(): void { $translationProvider = new TranslateProvider( $this->openAiApiService, - \OCP\Server::get(IAppConfig::class), $this->openAiSettingsService, $this->createMock(\OCP\IL10N::class), $this->createMock(\OCP\ICacheFactory::class),