* adjust api for switch AI assistants.
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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'] = '未发布';
|
||||
|
||||
Reference in New Issue
Block a user