* adjust api for switch AI assistants.

This commit is contained in:
Chenjianyu
2024-04-08 11:07:02 +08:00
parent 4fd138b13d
commit 4d22d5a20a
5 changed files with 25 additions and 26 deletions
@@ -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();
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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'] = '未发布';