-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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 <[email protected]>
- Loading branch information
1 parent
eed6216
commit d9cf6e6
Showing
7 changed files
with
389 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/TextToTextReformulation.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 reformulation | ||
* @since 30.0.0 | ||
*/ | ||
class TextToTextReformulation implements ITaskType { | ||
/** | ||
* @since 30.0.0 | ||
*/ | ||
public const ID = 'core:text2text:reformulation'; | ||
|
||
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('Reformulate text'); | ||
} | ||
|
||
/** | ||
* @inheritDoc | ||
* @since 30.0.0 | ||
*/ | ||
public function getDescription(): string { | ||
return $this->l->t('Takes a text and reformulates 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 reformulate'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
|
||
/** | ||
* @return ShapeDescriptor[] | ||
* @since 30.0.0 | ||
*/ | ||
public function getOutputShape(): array { | ||
return [ | ||
'output' => new ShapeDescriptor( | ||
$this->l->t('Reformulated text'), | ||
$this->l->t('The reformulated text, written by the assistant'), | ||
EShapeType::Text | ||
), | ||
]; | ||
} | ||
} |
Oops, something went wrong.