Просмотр исходного кода

#5406 AI Agents revamp: agents wipe chat history

Aleksandr Trofimov 6 месяцев назад
Родитель
Сommit
685b092265

+ 7 - 0
inc/classes/BxDolAIQuery.php

@@ -935,6 +935,13 @@ class BxDolAIQuery extends BxDolDb
         $sQuery = "SELECT `id`, `title` FROM `sys_agents_tools` WHERE `active` = 1 ORDER BY `title` ASC";
         return $this->getPairs($sQuery, 'id', 'title'); 
     }
+
+    public function wipeAgentChatHistory($aAgent) 
+    {
+        $sQuery = "DELETE FROM `sys_agents_chat_history` WHERE `thread_id` LIKE :val";
+        return $this->query($sQuery, ['val' => $aAgent['trigger'] . ':' . $aAgent['id'] . ':%']);
+    }
+
 }
 
 /** @} */

+ 2 - 1
install/sql/system.sql

@@ -5839,7 +5839,8 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('sys_studio_agents_agents', 'bulk', 'delete', '_Delete', '', 0, 1, 1),
 ('sys_studio_agents_agents', 'single', 'manual', '_Run', 'play', 1, 0, 1),
 ('sys_studio_agents_agents', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 2),
-('sys_studio_agents_agents', 'single', 'delete', '_Delete', 'remove', 1, 1, 3),
+('sys_studio_agents_agents', 'single', 'wipe_chat_history', '_sys_agents_agents_act_wipe_chat_history', 'eraser', 1, 1, 3),
+('sys_studio_agents_agents', 'single', 'delete', '_Delete', 'remove', 1, 1, 5),
 ('sys_studio_agents_agents', 'independent', 'add', '_adm_form_btn_field_add', '', 0, 0, 1);
 
 -- GRID: Agents Tools

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -2468,6 +2468,7 @@
     <string name="_sys_agents_assistants_chats_btn_chat"><![CDATA[Chat]]></string>
     <string name="_sys_agents_assistants_chats_btn_store"><![CDATA[Store for future usage]]></string>
     <string name="_sys_agents_assistants_chats_btn_unstore"><![CDATA[Remove from store]]></string>
+    <string name="_sys_agents_agents_act_wipe_chat_history"><![CDATA[Wipe chat history]]></string>
     <string name="_sys_agents_assistants_chats_field_name"><![CDATA[Name]]></string>
     <string name="_sys_agents_assistants_chats_field_description"><![CDATA[Description]]></string>
     <string name="_sys_agents_assistants_chats_popup_add"><![CDATA[Add chat]]></string>

+ 1 - 0
modules/boonex/russian/data/langs/system/ru.xml

@@ -2444,6 +2444,7 @@
         <string name="_sys_agents_assistants_chats_btn_chat"><![CDATA[Беседовать]]></string>
         <string name="_sys_agents_assistants_chats_btn_store"><![CDATA[Сохранить для будущего использования]]></string>
         <string name="_sys_agents_assistants_chats_btn_unstore"><![CDATA[Удалить из хранилища]]></string>
+        <string name="_sys_agents_agents_act_wipe_chat_history"><![CDATA[Очистить историю чата]]></string>
         <string name="_sys_agents_assistants_chats_field_name"><![CDATA[Название]]></string>
         <string name="_sys_agents_assistants_chats_field_description"><![CDATA[Описание]]></string>
         <string name="_sys_agents_assistants_chats_popup_add"><![CDATA[Добавить чат]]></string>

+ 16 - 0
studio/template/scripts/BxBaseStudioAgentsAgents.php

@@ -54,6 +54,22 @@ class BxBaseStudioAgentsAgents extends BxDolStudioAgentsAgents
         echoJson(['msg' => $sHtml]);
     }
 
+    public function performActionWipeChatHistory()
+    {
+        $iId = $this->_getId();        
+        $aAgent = BxDolAiQuery::getAgentObject($iId);
+        if (!$aAgent) {
+            echoJson(['msg' => _t('_sys_txt_error_occured')]);
+            return;
+        }
+
+        $oDb = new BxDolAIQuery();
+        $oDb->wipeAgentChatHistory($aAgent);
+
+        $aRes = ['grid' => $this->getCode(false), 'blink' => $iId];
+        echoJson($aRes);
+    }
+
     public function performActionAdd()
     {
         $sAction = 'add';