From 907657cb1b05875a58b153497bff52dec3dcd129 Mon Sep 17 00:00:00 2001 From: liwenrui Date: Wed, 19 Jul 2023 10:00:07 +0800 Subject: [PATCH] * create prompt actions by diffing with original prompt, task #97648. --- module/ai/control.php | 24 ++++++++++++++++++------ module/ai/model.php | 4 +++- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/module/ai/control.php b/module/ai/control.php index 150c8e0181..f5db79f987 100644 --- a/module/ai/control.php +++ b/module/ai/control.php @@ -202,11 +202,13 @@ class ai extends control $isJumpToNext = $role->jumpToNext == '1'; unset($role->jumpToNext); + $originalPrompt = clone $prompt; + $prompt->model = 0; // TODO: use actual $role->model; $prompt->role = $role->role; $prompt->characterization = $role->characterization; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -244,10 +246,12 @@ class ai extends control $isJumpToNext = $data->jumpToNext == '1'; unset($data->jumpToNext); + $originalPrompt = clone $prompt; + $prompt->module = $data->datagroup; $prompt->source = ",$data->datasource,"; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -287,10 +291,12 @@ class ai extends control $isJumpToNext = $data->jumpToNext == '1'; unset($data->jumpToNext); + $originalPrompt = clone $prompt; + $prompt->purpose = $data->purpose; $prompt->elaboration = $data->elaboration; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -328,9 +334,11 @@ class ai extends control $isJumpToNext = $data->jumpToNext == '1'; unset($data->jumpToNext); + $originalPrompt = clone $prompt; + $prompt->targetForm = $data->targetForm; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -375,10 +383,12 @@ class ai extends control $isJumpToNext = $data->jumpToNext == '1'; unset($data->jumpToNext); + $originalPrompt = clone $prompt; + $prompt->name = $data->name; $prompt->desc = $data->desc; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); $this->ai->togglePromptStatus($prompt, 'active'); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -443,12 +453,14 @@ class ai extends control { $data = fixer::input('post')->get(); + $originalPrompt = clone $prompt; + $prompt->role = $data->role; $prompt->characterization = $data->characterization; $prompt->purpose = $data->purpose; $prompt->elaboration = $data->elaboration; - $this->ai->updatePrompt($prompt); + $this->ai->updatePrompt($prompt, $originalPrompt); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/ai/model.php b/module/ai/model.php index 97c8577388..d8ff0dcc19 100644 --- a/module/ai/model.php +++ b/module/ai/model.php @@ -492,8 +492,10 @@ class aiModel extends model $flipedStatus = $prompt->status == 'draft' ? 'active' : 'draft'; + $originalPrompt = clone $prompt; $prompt->status = empty($status) ? $flipedStatus : $status; - return $this->updatePrompt($prompt); + + return $this->updatePrompt($prompt, $originalPrompt); } /**