From 67437d03252a09268a8293758429011c3af6ee7c Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Wed, 23 Oct 2024 16:40:34 +0200 Subject: [PATCH 1/2] fix(textprocessing): also list types that are available in task processing Signed-off-by: Julien Veyssier --- lib/private/TextProcessing/Manager.php | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/lib/private/TextProcessing/Manager.php b/lib/private/TextProcessing/Manager.php index 81a8f59c95501..617f57c6ba28d 100644 --- a/lib/private/TextProcessing/Manager.php +++ b/lib/private/TextProcessing/Manager.php @@ -82,6 +82,20 @@ public function getProviders(): array { } public function hasProviders(): bool { + // check if task processing equivalent types are available + $taskTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); + $taskProcessingCompatibleTaskTypes = [ + FreePromptTaskType::class => TextToText::ID, + HeadlineTaskType::class => TextToTextHeadline::ID, + SummaryTaskType::class => TextToTextSummary::ID, + TopicsTaskType::class => TextToTextTopics::ID, + ]; + foreach ($taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { + if (isset($taskTaskTypes[$taskTaskTypeId])) { + return true; + } + } + $context = $this->coordinator->getRegistrationContext(); if ($context === null) { return false; @@ -97,6 +111,21 @@ public function getAvailableTaskTypes(): array { foreach ($this->getProviders() as $provider) { $tasks[$provider->getTaskType()] = true; } + + // check if task processing equivalent types are available + $taskTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); + $taskProcessingCompatibleTaskTypes = [ + FreePromptTaskType::class => TextToText::ID, + HeadlineTaskType::class => TextToTextHeadline::ID, + SummaryTaskType::class => TextToTextSummary::ID, + TopicsTaskType::class => TextToTextTopics::ID, + ]; + foreach ($taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { + if (isset($taskTaskTypes[$taskTaskTypeId])) { + $tasks[$textTaskTypeClass] = true; + } + } + return array_keys($tasks); } From 70db4f51db3100fec4391af1c1599ac102ded443 Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Thu, 24 Oct 2024 12:18:03 +0200 Subject: [PATCH 2/2] feat(textprocessing): factorize taskProcessingCompatibleTaskTypes Signed-off-by: Julien Veyssier --- lib/private/TextProcessing/Manager.php | 33 +++++++++----------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/lib/private/TextProcessing/Manager.php b/lib/private/TextProcessing/Manager.php index 617f57c6ba28d..17778d310915e 100644 --- a/lib/private/TextProcessing/Manager.php +++ b/lib/private/TextProcessing/Manager.php @@ -44,6 +44,13 @@ class Manager implements IManager { /** @var ?IProvider[] */ private ?array $providers = null; + private static array $taskProcessingCompatibleTaskTypes = [ + FreePromptTaskType::class => TextToText::ID, + HeadlineTaskType::class => TextToTextHeadline::ID, + SummaryTaskType::class => TextToTextSummary::ID, + TopicsTaskType::class => TextToTextTopics::ID, + ]; + public function __construct( private IServerContainer $serverContainer, private Coordinator $coordinator, @@ -84,13 +91,7 @@ public function getProviders(): array { public function hasProviders(): bool { // check if task processing equivalent types are available $taskTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); - $taskProcessingCompatibleTaskTypes = [ - FreePromptTaskType::class => TextToText::ID, - HeadlineTaskType::class => TextToTextHeadline::ID, - SummaryTaskType::class => TextToTextSummary::ID, - TopicsTaskType::class => TextToTextTopics::ID, - ]; - foreach ($taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { + foreach (self::$taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { if (isset($taskTaskTypes[$taskTaskTypeId])) { return true; } @@ -114,13 +115,7 @@ public function getAvailableTaskTypes(): array { // check if task processing equivalent types are available $taskTaskTypes = $this->taskProcessingManager->getAvailableTaskTypes(); - $taskProcessingCompatibleTaskTypes = [ - FreePromptTaskType::class => TextToText::ID, - HeadlineTaskType::class => TextToTextHeadline::ID, - SummaryTaskType::class => TextToTextSummary::ID, - TopicsTaskType::class => TextToTextTopics::ID, - ]; - foreach ($taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { + foreach (self::$taskProcessingCompatibleTaskTypes as $textTaskTypeClass => $taskTaskTypeId) { if (isset($taskTaskTypes[$taskTaskTypeId])) { $tasks[$textTaskTypeClass] = true; } @@ -139,15 +134,9 @@ public function canHandleTask(OCPTask $task): bool { public function runTask(OCPTask $task): string { // try to run a task processing task if possible $taskTypeClass = $task->getType(); - $taskProcessingCompatibleTaskTypes = [ - FreePromptTaskType::class => TextToText::ID, - HeadlineTaskType::class => TextToTextHeadline::ID, - SummaryTaskType::class => TextToTextSummary::ID, - TopicsTaskType::class => TextToTextTopics::ID, - ]; - if (isset($taskProcessingCompatibleTaskTypes[$taskTypeClass]) && isset($this->taskProcessingManager->getAvailableTaskTypes()[$taskProcessingCompatibleTaskTypes[$taskTypeClass]])) { + if (isset(self::$taskProcessingCompatibleTaskTypes[$taskTypeClass]) && isset($this->taskProcessingManager->getAvailableTaskTypes()[self::$taskProcessingCompatibleTaskTypes[$taskTypeClass]])) { try { - $taskProcessingTaskTypeId = $taskProcessingCompatibleTaskTypes[$taskTypeClass]; + $taskProcessingTaskTypeId = self::$taskProcessingCompatibleTaskTypes[$taskTypeClass]; $taskProcessingTask = new \OCP\TaskProcessing\Task( $taskProcessingTaskTypeId, ['input' => $task->getInput()],