From 4d22d5a20ae0a699cae1f7adb7e12c3abe7c0bdd Mon Sep 17 00:00:00 2001 From: Chenjianyu Date: Mon, 8 Apr 2024 11:04:11 +0800 Subject: [PATCH] * adjust api for switch AI assistants. --- .../im/ext/control/clearaichatcontext.php | 47 +++++++++---------- module/ai/lang/de.php | 1 + module/ai/lang/en.php | 1 + module/ai/lang/fr.php | 1 + module/ai/lang/zh-cn.php | 1 + 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/extension/xuanxuan/extension/xuan/im/ext/control/clearaichatcontext.php b/extension/xuanxuan/extension/xuan/im/ext/control/clearaichatcontext.php index 917c64e804..e77acc492b 100644 --- a/extension/xuanxuan/extension/xuan/im/ext/control/clearaichatcontext.php +++ b/extension/xuanxuan/extension/xuan/im/ext/control/clearaichatcontext.php @@ -3,7 +3,7 @@ helper::import('../../control.php'); class myIm extends im { - public function clearAiChatContext($modelId, $assistantId, $userID = 0, $version = '', $device = 'desktop') + public function clearAiChatContext($modelId, $assistantId, $explicitSwitchAssistant, $userID = 0, $version = '', $device = 'desktop') { $user = $this->im->user->getByID($userID); $user->rights = $this->loadModel('user')->authorize($user->account); @@ -18,35 +18,30 @@ class myIm extends im if(!$aiModel || $aiModel->enabled == 0) return false; $chatGid = "$userID&ai-{$modelId}"; + $assistant = empty($assistantId) + ? (object) array('name'=> $this->lang->ai->assistants->defaultAssistant) + : $this->ai->getAssistantById($assistantId); - if(empty($assistantId)) + if($explicitSwitchAssistant) { - $broadcast = new stdclass(); - $broadcast->gid = imModel::createGID(); - $broadcast->cgid = $chatGid; - $broadcast->user = "ai-{$modelId}"; - $broadcast->content = $this->lang->ai->miniPrograms->clearContext; - $broadcast->type = 'broadcast'; - $broadcast->contentType = 'text'; - $broadcast->data = json_encode(array('reminders' => array())); - - $broadcastMessage = $this->im->messageCreate(array($broadcast), $userID); + $broadcast = new stdclass(); + $broadcast->gid = imModel::createGID(); + $broadcast->cgid = $chatGid; + $broadcast->user = "ai-{$modelId}"; + $broadcast->content = sprintf($this->lang->ai->assistants->switchAndClearContext, $assistant->name); } else { - $assistant = $this->ai->getAssistantById($assistantId); - - $broadcast = new stdclass(); - $broadcast->gid = imModel::createGID(); - $broadcast->cgid = $chatGid; - $broadcast->user = "ai-{$modelId}"; - $broadcast->content = sprintf($this->lang->ai->assistants->switchAndClearContext, $assistant->name); - $broadcast->type = 'broadcast'; - $broadcast->contentType = 'text'; - $broadcast->data = json_encode(array('reminders' => array())); - - $broadcastMessage = $this->im->messageCreate(array($broadcast), $userID); + $broadcast = new stdclass(); + $broadcast->gid = imModel::createGID(); + $broadcast->cgid = $chatGid; + $broadcast->user = "ai-{$modelId}"; + $broadcast->content = $this->lang->ai->miniPrograms->clearContext; } + $broadcast->type = 'broadcast'; + $broadcast->contentType = 'text'; + $broadcast->data = json_encode(array('reminders' => array())); + $broadcastMessage = $this->im->messageCreate(array($broadcast), $userID); $output = new stdclass(); $output->result = 'success'; @@ -55,8 +50,8 @@ class myIm extends im $output->data = $broadcastMessage; $outputs = array($output); - - if(!empty($assistant)) + + if(!empty($assistant->greetings)) { $replyMessage = new stdclass(); $replyMessage->gid = imModel::createGID(); diff --git a/module/ai/lang/de.php b/module/ai/lang/de.php index 47ac4a5287..348c44db4d 100644 --- a/module/ai/lang/de.php +++ b/module/ai/lang/de.php @@ -991,6 +991,7 @@ $lang->ai->assistants->duplicateTip = 'Assistant names in the same l $lang->ai->assistants->confirmDeleteTip = 'Do you want to confirm the deletion? '; $lang->ai->assistants->switchAndClearContext = 'Switch assistant %s, context has been cleared'; $lang->ai->assistants->noLlm = 'No language model is available, please create a language model first.'; +$lang->ai->assistants->defaultAssistant = 'Omni Assistant'; $lang->ai->assistants->statusList = array(); $lang->ai->assistants->statusList['0'] = 'Unpublished'; diff --git a/module/ai/lang/en.php b/module/ai/lang/en.php index 67318264b0..c45302ad8f 100644 --- a/module/ai/lang/en.php +++ b/module/ai/lang/en.php @@ -991,6 +991,7 @@ $lang->ai->assistants->duplicateTip = 'Assistant names in the same l $lang->ai->assistants->confirmDeleteTip = 'Do you want to confirm the deletion? '; $lang->ai->assistants->switchAndClearContext = 'Switch assistant %s, context has been cleared'; $lang->ai->assistants->noLlm = 'No language model is available, please create a language model first.'; +$lang->ai->assistants->defaultAssistant = 'Omni Assistant'; $lang->ai->assistants->statusList = array(); $lang->ai->assistants->statusList['0'] = 'Unpublished'; diff --git a/module/ai/lang/fr.php b/module/ai/lang/fr.php index 67318264b0..c45302ad8f 100644 --- a/module/ai/lang/fr.php +++ b/module/ai/lang/fr.php @@ -991,6 +991,7 @@ $lang->ai->assistants->duplicateTip = 'Assistant names in the same l $lang->ai->assistants->confirmDeleteTip = 'Do you want to confirm the deletion? '; $lang->ai->assistants->switchAndClearContext = 'Switch assistant %s, context has been cleared'; $lang->ai->assistants->noLlm = 'No language model is available, please create a language model first.'; +$lang->ai->assistants->defaultAssistant = 'Omni Assistant'; $lang->ai->assistants->statusList = array(); $lang->ai->assistants->statusList['0'] = 'Unpublished'; diff --git a/module/ai/lang/zh-cn.php b/module/ai/lang/zh-cn.php index 056253869f..8805591bbd 100644 --- a/module/ai/lang/zh-cn.php +++ b/module/ai/lang/zh-cn.php @@ -991,6 +991,7 @@ $lang->ai->assistants->duplicateTip = '同一语言模型下的助 $lang->ai->assistants->confirmDeleteTip = '确认删除此 AI 助手?'; $lang->ai->assistants->switchAndClearContext = '切换助手%s,上下文关系已清除'; $lang->ai->assistants->noLlm = '没有可用的语言模型,请先创建一个。'; +$lang->ai->assistants->defaultAssistant = '全能助手'; $lang->ai->assistants->statusList = array(); $lang->ai->assistants->statusList['0'] = '未发布';