]> source.dussan.org Git - nextcloud-server.git/commitdiff
LLM OCP API: Add identifier param
authorMarcel Klehr <mklehr@gmx.net>
Thu, 6 Jul 2023 08:24:28 +0000 (10:24 +0200)
committerMarcel Klehr <mklehr@gmx.net>
Wed, 9 Aug 2023 08:01:31 +0000 (10:01 +0200)
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
(cherry picked from commit f6f8cb43313deb3dfd366bc9e2128d787c833405)

core/Migrations/Version28000Date20230616104802.php
lib/private/LanguageModel/Db/Task.php
lib/public/LanguageModel/AbstractLanguageModelTask.php
lib/public/LanguageModel/ILanguageModelTask.php

index ab7347608e2001874a49f45fbe286b5b37bd912f..f13f2ef03a6ea4f3bdfd284996067397efed86ae 100644 (file)
@@ -78,6 +78,11 @@ class Version28000Date20230616104802 extends SimpleMigrationStep {
                                'length' => 32,
                                'default' => '',
                        ]);
+                       $table->addColumn('identifier', Types::STRING, [
+                               'notnull' => true,
+                               'length' => 255,
+                               'default' => '',
+                       ]);
                        $table->addColumn('last_updated', 'integer', [
                                'notnull' => false,
                                'length' => 4,
index bbafd7583c8b62205471d493c460d7f3a3a80fa9..1e8d57d39e8ada4bc7c0761e234eb6dc8c0337d3 100644 (file)
@@ -20,6 +20,8 @@ use OCP\LanguageModel\ILanguageModelTask;
  * @method string getuserId()
  * @method setAppId(string $type)
  * @method string getAppId()
+ * @method setIdentifier(string $type)
+ * @method string getIdentifier()
  */
 class Task extends Entity {
        protected $lastUpdated;
@@ -29,16 +31,17 @@ class Task extends Entity {
        protected $status;
        protected $userId;
        protected $appId;
+       protected $identifier;
 
        /**
         * @var string[]
         */
-       public static array $columns = ['id', 'last_updated', 'type', 'input', 'output', 'status', 'user_id', 'app_id'];
+       public static array $columns = ['id', 'last_updated', 'type', 'input', 'output', 'status', 'user_id', 'app_id', 'identifier'];
 
        /**
         * @var string[]
         */
-       public static array $fields = ['id', 'lastUpdated', 'type', 'input', 'output', 'status', 'userId', 'appId'];
+       public static array $fields = ['id', 'lastUpdated', 'type', 'input', 'output', 'status', 'userId', 'appId', 'identifier'];
 
 
        public function __construct() {
@@ -51,6 +54,7 @@ class Task extends Entity {
                $this->addType('status', 'integer');
                $this->addType('userId', 'string');
                $this->addType('appId', 'string');
+               $this->addType('identifier', 'string');
        }
 
        public function toRow(): array {
@@ -69,6 +73,7 @@ class Task extends Entity {
                        'output' => $task->getOutput(),
                        'userId' => $task->getUserId(),
                        'appId' => $task->getAppId(),
+                       'identifier' => $task->getIdentifier(),
                ]);
        }
 }
index a6b091dc14fa5b28a4cdb98a6788805caacf7e5a..afa23dd36c834106e9cc58247758537b224eb8ac 100644 (file)
@@ -43,12 +43,14 @@ abstract class AbstractLanguageModelTask implements ILanguageModelTask {
         * @param string $input
         * @param string $appId
         * @param string|null $userId
+        * @param string $identifier An arbitrary identifier for this task. max length: 255 chars
         * @since 28.0.0
         */
        final public function __construct(
                protected string $input,
                protected string $appId,
                protected ?string $userId,
+               protected string $identifier = '',
        ) {
        }
 
@@ -122,6 +124,14 @@ abstract class AbstractLanguageModelTask implements ILanguageModelTask {
                return $this->appId;
        }
 
+       /**
+        * @return string
+        * @since 28.0.0
+        */
+       final public function getIdentifier(): string {
+               return $this->identifier;
+       }
+
        /**
         * @return string|null
         * @since 28.0.0
@@ -143,6 +153,7 @@ abstract class AbstractLanguageModelTask implements ILanguageModelTask {
                        'appId' => $this->getAppId(),
                        'input' => $this->getInput(),
                        'output' => $this->getOutput(),
+                       'identifier' => $this->getIdentifier(),
                ];
        }
 
@@ -153,7 +164,7 @@ abstract class AbstractLanguageModelTask implements ILanguageModelTask {
         * @since 28.0.0
         */
        final public static function fromTaskEntity(Task $taskEntity): ILanguageModelTask {
-               $task = self::factory($taskEntity->getType(), $taskEntity->getInput(), $taskEntity->getuserId(), $taskEntity->getAppId());
+               $task = self::factory($taskEntity->getType(), $taskEntity->getInput(), $taskEntity->getuserId(), $taskEntity->getAppId(), $taskEntity->getIdentifier());
                $task->setId($taskEntity->getId());
                $task->setStatus($taskEntity->getStatus());
                $task->setOutput($taskEntity->getOutput());
@@ -165,14 +176,15 @@ abstract class AbstractLanguageModelTask implements ILanguageModelTask {
         * @param string $input
         * @param string|null $userId
         * @param string $appId
+        * @param string $identifier
         * @return ILanguageModelTask
         * @throws \InvalidArgumentException
         * @since 28.0.0
         */
-       final public static function factory(string $type, string $input, ?string $userId, string $appId): ILanguageModelTask {
+       final public static function factory(string $type, string $input, ?string $userId, string $appId, string $identifier): ILanguageModelTask {
                if (!in_array($type, array_keys(self::TYPES))) {
                        throw new \InvalidArgumentException('Unknown task type');
                }
-               return new (ILanguageModelTask::TYPES[$type])($input, $appId, $userId);
+               return new (ILanguageModelTask::TYPES[$type])($input, $appId, $userId, $identifier);
        }
 }
index 356cb53914ed82549b61d35b095e1a7a19a5cde0..b8f0f96695d72b9c2b4717d8e9e411cc7601bec7 100644 (file)
@@ -132,6 +132,12 @@ interface ILanguageModelTask extends \JsonSerializable {
         */
        public function getAppId(): string;
 
+       /**
+        * @return string
+        * @since 28.0.0
+        */
+       public function getIdentifier(): string;
+
        /**
         * @return string|null
         * @since 28.0.0