From 82d3b00ab1f5ed3206a986e4969778bff77ca560 Mon Sep 17 00:00:00 2001 From: Marcel Klehr Date: Fri, 16 Jun 2023 13:27:59 +0200 Subject: [PATCH] LLM OCP API: Add to RegistrationContext Signed-off-by: Marcel Klehr --- .../Bootstrap/RegistrationContext.php | 21 +++++++++++++++++++ .../LanguageModel/LanguageModelManager.php | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/private/AppFramework/Bootstrap/RegistrationContext.php b/lib/private/AppFramework/Bootstrap/RegistrationContext.php index 8fcafab2d87..67e8b390c15 100644 --- a/lib/private/AppFramework/Bootstrap/RegistrationContext.php +++ b/lib/private/AppFramework/Bootstrap/RegistrationContext.php @@ -33,6 +33,7 @@ use Closure; use OCP\Calendar\Resource\IBackend as IResourceBackend; use OCP\Calendar\Room\IBackend as IRoomBackend; use OCP\Collaboration\Reference\IReferenceProvider; +use OCP\LanguageModel\ILanguageModelProvider; use OCP\SpeechToText\ISpeechToTextProvider; use OCP\Talk\ITalkBackend; use OCP\Translation\ITranslationProvider; @@ -115,6 +116,9 @@ class RegistrationContext { /** @var ServiceRegistration[] */ private $speechToTextProviders = []; + /** @var ServiceRegistration[] */ + private $languageModelProviders = []; + /** @var ServiceRegistration[] */ private $templateProviders = []; @@ -262,6 +266,12 @@ class RegistrationContext { $providerClass ); } + public function registerLanguageModelProvider(string $providerClass): void { + $this->context->registerLanguageModelProvider( + $this->appId, + $providerClass + ); + } public function registerTemplateProvider(string $providerClass): void { $this->context->registerTemplateProvider( @@ -429,6 +439,10 @@ class RegistrationContext { $this->speechToTextProviders[] = new ServiceRegistration($appId, $class); } + public function registerLanguageModelProvider(string $appId, string $class): void { + $this->languageModelProviders[] = new ServiceRegistration($appId, $class); + } + public function registerTemplateProvider(string $appId, string $class): void { $this->templateProviders[] = new ServiceRegistration($appId, $class); } @@ -707,6 +721,13 @@ class RegistrationContext { return $this->speechToTextProviders; } + /** + * @return ServiceRegistration[] + */ + public function getLanguageModelProviders(): array { + return $this->languageModelProviders; + } + /** * @return ServiceRegistration[] */ diff --git a/lib/private/LanguageModel/LanguageModelManager.php b/lib/private/LanguageModel/LanguageModelManager.php index f9f13b15d6e..b0e45f5812a 100644 --- a/lib/private/LanguageModel/LanguageModelManager.php +++ b/lib/private/LanguageModel/LanguageModelManager.php @@ -50,7 +50,7 @@ class LanguageModelManager implements ILanguageModelManager { $this->providers = []; - foreach ($context->getSpeechToTextProviders() as $providerServiceRegistration) { + foreach ($context->getLanguageModelProviders() as $providerServiceRegistration) { $class = $providerServiceRegistration->getService(); try { $this->providers[$class] = $this->serverContainer->get($class);