LLM OCP API: Add to RegistrationContext

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
This commit is contained in:
Marcel Klehr 2023-06-16 13:27:59 +02:00
parent 6fc4cb63ef
commit 82d3b00ab1
2 changed files with 22 additions and 1 deletions

View file

@ -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<ISpeechToTextProvider>[] */
private $speechToTextProviders = [];
/** @var ServiceRegistration<ILanguageModelProvider>[] */
private $languageModelProviders = [];
/** @var ServiceRegistration<ICustomTemplateProvider>[] */
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<ILanguageModelProvider>[]
*/
public function getLanguageModelProviders(): array {
return $this->languageModelProviders;
}
/**
* @return ServiceRegistration<ICustomTemplateProvider>[]
*/

View file

@ -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);