-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(TaskProcessing): Add more task types
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
- Loading branch information
1 parent
eed6216
commit d73e8fb
Showing
6 changed files
with
295 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
/** | ||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors | ||
* SPDX-License-Identifier: AGPL-3.0-or-later | ||
*/ | ||
|
||
namespace OCP\TaskProcessing\TaskTypes; | ||
|
||
use OCP\IL10N; | ||
use OCP\L10N\IFactory; | ||
use OCP\TaskProcessing\EShapeType; | ||
use OCP\TaskProcessing\ITaskType; | ||
use OCP\TaskProcessing\ShapeDescriptor; | ||
|
||
/** | ||
* This is the task processing task type for text chat | ||
* @since 30.0.0 | ||
*/ | ||
class TextToTextChat implements ITaskType { | ||
/** | ||
* @since 30.0.0 | ||
*/ | ||
public const ID = 'core:text2text:chat'; | ||
|
||
private IL10N $l; | ||
|
||
/** | ||
* @param IFactory $l10nFactory | ||
* @since 30.0.0 | ||
*/ | ||
public function __construct( | ||
IFactory $l10nFactory, | ||
) { | ||
$this->l = $l10nFactory->get('core'); | ||
} | ||
|
||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getName(): string { | ||
return $this->l->t('Chat'); | ||
} | ||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getDescription(): string { | ||
return $this->l->t('Chat with the assistant'); | ||
} | ||
|
||
/** | ||
* @return string | ||
* @since 30.0.0 | ||
*/ | ||
public function getId(): string { | ||
return self::ID; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getInputShape(): array { | ||
return [ | ||
'system_prompt' => new ShapeDescriptor( | ||
$this->l->t('System prompt'), | ||
$this->l->t('Define rules and assumptions that the assistant should follow during the conversation.'), | ||
EShapeType::Text | ||
), | ||
'input' => new ShapeDescriptor( | ||
$this->l->t('Chat message'), | ||
$this->l->t('Describe a task that you want the assistant to do or ask a question'), | ||
EShapeType::Text | ||
), | ||
'history' => new ShapeDescriptor( | ||
$this->l->t('Chat history'), | ||
$this->l->t('The history of chat messages before the current message, starting with a message by the user'), | ||
EShapeType::ListOfTexts | ||
) | ||
]; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getOutputShape(): array { | ||
return [ | ||
'output' => new ShapeDescriptor( | ||
$this->l->t('Response message'), | ||
$this->l->t('The generated response as part of the conversation'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
} |
92 changes: 92 additions & 0 deletions
92
lib/public/TaskProcessing/TaskTypes/TextToTextFormalization.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
/** | ||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors | ||
* SPDX-License-Identifier: AGPL-3.0-or-later | ||
*/ | ||
|
||
namespace OCP\TaskProcessing\TaskTypes; | ||
|
||
use OCP\IL10N; | ||
use OCP\L10N\IFactory; | ||
use OCP\TaskProcessing\EShapeType; | ||
use OCP\TaskProcessing\ITaskType; | ||
use OCP\TaskProcessing\ShapeDescriptor; | ||
|
||
/** | ||
* This is the task processing task type for text formalization | ||
* @since 30.0.0 | ||
*/ | ||
class TextToTextFormalization implements ITaskType { | ||
/** | ||
* @since 30.0.0 | ||
*/ | ||
public const ID = 'core:text2text:formalization'; | ||
|
||
private IL10N $l; | ||
|
||
/** | ||
* @param IFactory $l10nFactory | ||
* @since 30.0.0 | ||
*/ | ||
public function __construct( | ||
IFactory $l10nFactory, | ||
) { | ||
$this->l = $l10nFactory->get('core'); | ||
} | ||
|
||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getName(): string { | ||
return $this->l->t('Formalize text'); | ||
} | ||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getDescription(): string { | ||
return $this->l->t('Takes a text and makes it sound more formal'); | ||
} | ||
|
||
/** | ||
* @return string | ||
* @since 30.0.0 | ||
*/ | ||
public function getId(): string { | ||
return self::ID; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getInputShape(): array { | ||
return [ | ||
'input' => new ShapeDescriptor( | ||
$this->l->t('Input text'), | ||
$this->l->t('Write a text that you want the assistant to formalize'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getOutputShape(): array { | ||
return [ | ||
'output' => new ShapeDescriptor( | ||
$this->l->t('Formalized text'), | ||
$this->l->t('The formalized text'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
} |
92 changes: 92 additions & 0 deletions
92
lib/public/TaskProcessing/TaskTypes/TextToTextSimplification.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
/** | ||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors | ||
* SPDX-License-Identifier: AGPL-3.0-or-later | ||
*/ | ||
|
||
namespace OCP\TaskProcessing\TaskTypes; | ||
|
||
use OCP\IL10N; | ||
use OCP\L10N\IFactory; | ||
use OCP\TaskProcessing\EShapeType; | ||
use OCP\TaskProcessing\ITaskType; | ||
use OCP\TaskProcessing\ShapeDescriptor; | ||
|
||
/** | ||
* This is the task processing task type for text simplification | ||
* @since 30.0.0 | ||
*/ | ||
class TextToTextSimplification implements ITaskType { | ||
/** | ||
* @since 30.0.0 | ||
*/ | ||
public const ID = 'core:text2text:simplification'; | ||
|
||
private IL10N $l; | ||
|
||
/** | ||
* @param IFactory $l10nFactory | ||
* @since 30.0.0 | ||
*/ | ||
public function __construct( | ||
IFactory $l10nFactory, | ||
) { | ||
$this->l = $l10nFactory->get('core'); | ||
} | ||
|
||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getName(): string { | ||
return $this->l->t('Simplify text'); | ||
} | ||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getDescription(): string { | ||
return $this->l->t('Takes a text and simplifies it'); | ||
} | ||
|
||
/** | ||
* @return string | ||
* @since 30.0.0 | ||
*/ | ||
public function getId(): string { | ||
return self::ID; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getInputShape(): array { | ||
return [ | ||
'input' => new ShapeDescriptor( | ||
$this->l->t('Input text'), | ||
$this->l->t('Write a text that you want the assistant to simplify'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getOutputShape(): array { | ||
return [ | ||
'output' => new ShapeDescriptor( | ||
$this->l->t('Simplified text'), | ||
$this->l->t('The simplified text'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
} |