diff options
author | Marcel Klehr <mklehr@gmx.net> | 2023-07-25 14:17:57 +0200 |
---|---|---|
committer | Julien Veyssier <julien-nc@posteo.net> | 2023-08-02 12:37:35 +0200 |
commit | 2a3ef102f7527041609ad96bc59d6b21f42980d4 (patch) | |
tree | 2ca08e6288ff471de9f0c7664e990c25dd81c725 /lib/private/SpeechToText/SpeechToTextManager.php | |
parent | a840e8c6e5a0d7b7c3a371776fd395976b2c2fdf (diff) | |
download | nextcloud-server-2a3ef102f7527041609ad96bc59d6b21f42980d4.tar.gz nextcloud-server-2a3ef102f7527041609ad96bc59d6b21f42980d4.zip |
AI admin settings: Use config values in AI feature managers
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Diffstat (limited to 'lib/private/SpeechToText/SpeechToTextManager.php')
-rw-r--r-- | lib/private/SpeechToText/SpeechToTextManager.php | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/private/SpeechToText/SpeechToTextManager.php b/lib/private/SpeechToText/SpeechToTextManager.php index 757fc02485e..bdd04ad3651 100644 --- a/lib/private/SpeechToText/SpeechToTextManager.php +++ b/lib/private/SpeechToText/SpeechToTextManager.php @@ -34,6 +34,7 @@ use OCP\BackgroundJob\IJobList; use OCP\Files\File; use OCP\Files\InvalidPathException; use OCP\Files\NotFoundException; +use OCP\IConfig; use OCP\IServerContainer; use OCP\PreConditionNotMetException; use OCP\SpeechToText\ISpeechToTextManager; @@ -53,6 +54,7 @@ class SpeechToTextManager implements ISpeechToTextManager { private Coordinator $coordinator, private LoggerInterface $logger, private IJobList $jobList, + private IConfig $config, ) { } @@ -111,7 +113,18 @@ class SpeechToTextManager implements ISpeechToTextManager { throw new PreConditionNotMetException('No SpeechToText providers have been registered'); } - foreach ($this->getProviders() as $provider) { + $providers = $this->getProviders(); + + $json = $this->config->getAppValue('core', 'ai.stt_provider', ''); + if ($json !== '') { + $className = json_decode($json, true); + $provider = current(array_filter($providers, fn ($provider) => $provider::class === $className)); + if ($provider !== false) { + $providers = [$provider]; + } + } + + foreach ($providers as $provider) { try { return $provider->transcribeFile($file); } catch (\Throwable $e) { |