diff --git a/module/ai/control.php b/module/ai/control.php index 4e1aa5ea33..bce7337100 100644 --- a/module/ai/control.php +++ b/module/ai/control.php @@ -139,12 +139,30 @@ class ai extends control /** * Edit role of prompt, prompt editing step 2. * - * @param int $prompt + * @param int $promptID * @access public * @return void */ - public function promptAssignRole($prompt) + public function promptAssignRole($promptID) { + $prompt = $this->ai->getPromptByID($promptID); + + if($_POST) + { + $role = fixer::input('post')->get(); + + $prompt->model = $role->model; + $prompt->role = $role->role; + $prompt->characterization = $role->characterization; + + $this->ai->updatePrompt($prompt); + + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $this->inlink('promptSelectDataSource', "promptID=$promptID") . '#app=admin')); + } + + $this->view->prompt = $prompt; + $this->view->promptID = $promptID; $this->view->title = $this->lang->ai->prompts->assignRole . " {$this->lang->colon} " . $this->lang->ai->prompts->common; $this->view->position[] = $this->lang->ai->prompts->common; $this->display(); @@ -153,12 +171,13 @@ class ai extends control /** * Set data source of prompt, prompt editing step 3. * - * @param int $prompt + * @param int $promptID * @access public * @return void */ - public function promptSelectDataSource($prompt) + public function promptSelectDataSource($promptID) { + $this->view->promptID = $promptID; $this->view->title = $this->lang->ai->prompts->selectDataSource . " {$this->lang->colon} " . $this->lang->ai->prompts->common; $this->view->position[] = $this->lang->ai->prompts->common; $this->display(); @@ -167,12 +186,13 @@ class ai extends control /** * Edit purpose and purpose elaboration of prompt, prompt editing step 4. * - * @param int $prompt + * @param int $promptID * @access public * @return void */ - public function promptSetPurpose($prompt) + public function promptSetPurpose($promptID) { + $this->view->promptID = $promptID; $this->view->title = $this->lang->ai->prompts->setPurpose . " {$this->lang->colon} " . $this->lang->ai->prompts->common; $this->view->position[] = $this->lang->ai->prompts->common; $this->display(); @@ -181,12 +201,13 @@ class ai extends control /** * Set target form of prompt, prompt editing step 5. * - * @param int $prompt + * @param int $promptID * @access public * @return void */ - public function promptSetTargetForm($prompt) + public function promptSetTargetForm($promptID) { + $this->view->promptID = $promptID; $this->view->title = $this->lang->ai->prompts->setTargetForm . " {$this->lang->colon} " . $this->lang->ai->prompts->common; $this->view->position[] = $this->lang->ai->prompts->common; $this->display(); @@ -195,12 +216,13 @@ class ai extends control /** * Edit additional information of prompt, final prompt editing step. * - * @param int $prompt + * @param int $promptID * @access public * @return void */ - public function promptFinalize($prompt) + public function promptFinalize($promptID) { + $this->view->promptID = $promptID; $this->view->title = $this->lang->ai->prompts->finalize . " {$this->lang->colon} " . $this->lang->ai->prompts->common; $this->view->position[] = $this->lang->ai->prompts->common; $this->display(); diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php index 0d0e0e0a40..86ac5c5798 100644 --- a/module/ai/lang/en.php +++ b/module/ai/lang/en.php @@ -12,8 +12,9 @@ $lang->ai->common = 'AI'; /* Definitions of table columns, used to sprintf error messages to dao::$errors. */ $lang->prompt = new stdclass(); -$lang->prompt->name = 'Name'; -$lang->prompt->desc = 'Description'; +$lang->prompt->name = 'Name'; +$lang->prompt->desc = 'Description'; +$lang->prompt->model = 'Model'; $lang->ai->nextStep = 'Next'; @@ -35,6 +36,11 @@ $lang->ai->prompts->setPurpose = 'Set Purpose'; $lang->ai->prompts->setTargetForm = 'Set Target Form'; $lang->ai->prompts->finalize = 'Finalize'; +$lang->ai->prompts->assignModel = 'Select Model'; +$lang->ai->prompts->model = 'Model'; +$lang->ai->prompts->role = 'Role'; +$lang->ai->prompts->characterization = 'Characterization'; + $lang->ai->prompts->statuses = array(); $lang->ai->prompts->statuses[''] = 'All'; $lang->ai->prompts->statuses['draft'] = 'Draft'; diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php index 13c6e7560c..e5437bb9ec 100644 --- a/module/ai/lang/zh-cn.php +++ b/module/ai/lang/zh-cn.php @@ -12,8 +12,9 @@ $lang->ai->common = 'AI'; /* Definitions of table columns, used to sprintf error messages to dao::$errors. */ $lang->prompt = new stdclass(); -$lang->prompt->name = '名称'; -$lang->prompt->desc = '描述'; +$lang->prompt->name = '名称'; +$lang->prompt->desc = '描述'; +$lang->prompt->model = '语言模型'; $lang->ai->nextStep = '下一步'; @@ -35,6 +36,11 @@ $lang->ai->prompts->setPurpose = '确认操作'; $lang->ai->prompts->setTargetForm = '结果处理'; $lang->ai->prompts->finalize = '准备发布'; +$lang->ai->prompts->assignModel = '指定语言模型'; +$lang->ai->prompts->model = '语言模型'; +$lang->ai->prompts->role = '角色'; +$lang->ai->prompts->characterization = '角色描述'; + $lang->ai->prompts->statuses = array(); $lang->ai->prompts->statuses[''] = '全部'; $lang->ai->prompts->statuses['draft'] = '草稿'; diff --git a/module/ai/model.php b/module/ai/model.php index 40baf4fecd..7ecaeb61d0 100644 --- a/module/ai/model.php +++ b/module/ai/model.php @@ -320,6 +320,22 @@ class aiModel extends model ->fetchAll(); } + /** + * Get prompt by id. + * + * TODO: fully implement this. + * + * @param int $id + * @access public + * @return object + */ + public function getPromptById($id) + { + return $this->dao->select('*')->from(TABLE_PROMPT) + ->where('id')->eq($id) + ->fetch(); + } + /** * Create a prompt. * @@ -342,4 +358,28 @@ class aiModel extends model return dao::isError() ? false : $this->dao->lastInsertID(); } + + /** + * Update a prompt. + * + * TODO: fully implement this. + * + * @param object $prompt + * @access public + * @return bool + */ + public function updatePrompt($prompt) + { + $prompt->editedDate = helper::now(); + $prompt->editedBy = $this->app->user->account; + + $this->dao->update(TABLE_PROMPT) + ->data($prompt) + ->autoCheck() + ->batchCheck($this->config->ai->createprompt->requiredFields, 'notempty') + ->where('id')->eq($prompt->id) + ->exec(); + + return !dao::isError(); + } } diff --git a/module/ai/view/promptassignrole.html.php b/module/ai/view/promptassignrole.html.php index af09f20197..13e0b57f64 100644 --- a/module/ai/view/promptassignrole.html.php +++ b/module/ai/view/promptassignrole.html.php @@ -10,4 +10,60 @@ */ ?> + +