Pārlūkot izejas kodu

Ticket #5406 - AI Agents rewamp.

AntonLV 7 mēneši atpakaļ
vecāks
revīzija
172f394fc8

+ 61 - 41
install/sql/system.sql

@@ -5631,52 +5631,25 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('sys_studio_api_keys', 'single', 'delete', '_Delete', 'remove', 1, 1, 1),
 ('sys_studio_api_keys', 'independent', 'add', '_adm_form_btn_field_add', '', 0, 0, 1);
 
-
--- GRID: Agents Automators
-INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `override_class_name`, `override_class_file`) VALUES
-('sys_studio_agents_automators', 'Sql', 'SELECT * FROM `sys_agents_automators` WHERE 1 ', 'sys_agents_automators', 'id', 'added', 'active', '', 20, NULL, 'start', '', '', '', 'like', '', '', 'BxTemplStudioAgentsAutomators', '');
-
-INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `hidden_on`, `order`) VALUES
-('sys_studio_agents_automators', 'checkbox', '', '2%', 0, 0, '', '', 1),
-('sys_studio_agents_automators', 'switcher', '_sys_agents_automators_txt_active', '8%', 0, 0, '', '', 2),
-('sys_studio_agents_automators', 'name', '_sys_agents_automators_txt_name', '10%', 0, 0, '', '', 3),
-('sys_studio_agents_automators', 'type', '_sys_agents_automators_txt_type', '8%', 0, 0, '', '', 4),
-('sys_studio_agents_automators', 'model_id', '_sys_agents_automators_txt_model_id', '8%', 0, 0, '', '', 5),
-('sys_studio_agents_automators', 'profile_id', '_sys_agents_automators_txt_profile_id', '10%', 0, 0, '', '', 6),
-('sys_studio_agents_automators', 'message_id', '_sys_agents_automators_txt_message_id', '14%', 0, 32, '', '', 7),
-('sys_studio_agents_automators', 'messages', '_sys_agents_automators_txt_messages', '10%', 0, 0, '', '', 8),
-('sys_studio_agents_automators', 'added', '_sys_agents_automators_txt_added', '5%', 0, 0, '', '', 9),
-('sys_studio_agents_automators', 'status', '_sys_agents_automators_txt_status', '5%', 0, 0, '', '', 10),
-('sys_studio_agents_automators', 'actions', '', '20%', 0, 0, '', '', 11);
-
-INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
-('sys_studio_agents_automators', 'bulk', 'delete', '_Delete', '', 0, 1, 1),
-('sys_studio_agents_automators', 'single', 'tune', '_sys_agents_automators_btn_tune', '', 0, 0, 1),
-('sys_studio_agents_automators', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 2),
-('sys_studio_agents_automators', 'single', 'delete', '_Delete', 'remove', 1, 1, 3),
-('sys_studio_agents_automators', 'independent', 'add', '_sys_agents_automators_btn_add', '', 0, 0, 1);
-
-
--- GRID: Agents Helpers
+-- GRID: Agents Models
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `responsive`, `show_total_count`, `override_class_name`, `override_class_file`) VALUES
-('sys_studio_agents_helpers', 'Sql', 'SELECT * FROM `sys_agents_helpers` WHERE 1 ', 'sys_agents_helpers', 'id', 'added', 'active', '', 20, NULL, 'start', '', '', '', 'like', '', '', 2147483647, 1, 1, 'BxTemplStudioAgentsHelpers', '');
+('sys_studio_agents_models', 'Sql', 'SELECT * FROM `sys_agents_models` WHERE 1 ', 'sys_agents_models', 'id', 'added', 'active', '', 20, NULL, 'start', '', '', '', 'like', '', '', 2147483647, 1, 1, 'BxTemplStudioAgentsModels', '');
 
 INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `hidden_on`, `order`) VALUES
-('sys_studio_agents_helpers', 'checkbox', '', '2%', 0, 0, '', '', 1),
-('sys_studio_agents_helpers', 'switcher', '_sys_agents_helpers_txt_active', '8%', 0, 0, '', '', 2),
-('sys_studio_agents_helpers', 'name', '_sys_agents_helpers_txt_name', '15%', 0, 0, '', '', 3),
-('sys_studio_agents_helpers', 'model_id', '_sys_agents_helpers_txt_model_id', '10%', 0, 0, '', '', 5),
-('sys_studio_agents_helpers', 'profile_id', '_sys_agents_helpers_txt_profile_id', '10%', 0, 0, '', '', 6),
-('sys_studio_agents_helpers', 'prompt', '_sys_agents_helpers_txt_prompt', '25%', 0, 32, '', '', 7),
-('sys_studio_agents_helpers', 'added', '_sys_agents_helpers_txt_added', '10%', 0, 0, '', '', 8),
-('sys_studio_agents_helpers', 'actions', '', '20%', 0, 0, '', '', 9);
+('sys_studio_agents_models', 'checkbox', '', '2%', 0, 0, '', '', 1),
+('sys_studio_agents_models', 'switcher', '_sys_agents_models_txt_active', '8%', 0, 0, '', '', 2),
+('sys_studio_agents_models', 'name', '_sys_agents_models_txt_name', '15%', 0, 0, '', '', 3),
+('sys_studio_agents_models', 'title', '_sys_agents_models_txt_title', '10%', 0, 0, '', '', 4),
+('sys_studio_agents_models', 'key', '_sys_agents_models_txt_key', '10%', 0, 0, '', '', 5),
+('sys_studio_agents_models', 'params', '_sys_agents_models_txt_params', '25%', 0, 32, '', '', 6),
+('sys_studio_agents_models', 'added', '_sys_agents_models_txt_added', '10%', 0, 0, '', '', 7),
+('sys_studio_agents_models', 'actions', '', '20%', 0, 0, '', '', 8);
 
 INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `active`, `order`) VALUES
-('sys_studio_agents_helpers', 'independent', 'add', '_sys_agents_helpers_btn_add', '', 0, 0, 1, 1),
-('sys_studio_agents_helpers', 'single', 'tune', '_sys_agents_helpers_btn_tune', '', 0, 0, 1, 1),
-('sys_studio_agents_helpers', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 1, 2),
-('sys_studio_agents_helpers', 'single', 'delete', '_Delete', 'remove', 1, 1, 1, 3),
-('sys_studio_agents_helpers', 'bulk', 'delete', '_Delete', '', 0, 1, 1, 1);
+('sys_studio_agents_models', 'independent', 'add', '_sys_agents_models_btn_add', '', 0, 0, 1, 1),
+('sys_studio_agents_models', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 1, 2),
+('sys_studio_agents_models', 'single', 'delete', '_Delete', 'remove', 1, 1, 1, 3),
+('sys_studio_agents_models', 'bulk', 'delete', '_Delete', '', 0, 1, 1, 1);
 
 -- GRID: Agents Assistants
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `responsive`, `show_total_count`, `override_class_name`, `override_class_file`) VALUES
@@ -5740,6 +5713,52 @@ INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon
 ('sys_studio_agents_assistants_files', 'independent', 'sync', '_sys_agents_assistants_files_btn_sync', '', 0, 0, 2),
 ('sys_studio_agents_assistants_files', 'single', 'delete', '_sys_agents_assistants_files_btn_delete', 'remove', 1, 1, 1);
 
+-- GRID: Agents Automators
+INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `override_class_name`, `override_class_file`) VALUES
+('sys_studio_agents_automators', 'Sql', 'SELECT * FROM `sys_agents_automators` WHERE 1 ', 'sys_agents_automators', 'id', 'added', 'active', '', 20, NULL, 'start', '', '', '', 'like', '', '', 'BxTemplStudioAgentsAutomators', '');
+
+INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `hidden_on`, `order`) VALUES
+('sys_studio_agents_automators', 'checkbox', '', '2%', 0, 0, '', '', 1),
+('sys_studio_agents_automators', 'switcher', '_sys_agents_automators_txt_active', '8%', 0, 0, '', '', 2),
+('sys_studio_agents_automators', 'name', '_sys_agents_automators_txt_name', '10%', 0, 0, '', '', 3),
+('sys_studio_agents_automators', 'type', '_sys_agents_automators_txt_type', '8%', 0, 0, '', '', 4),
+('sys_studio_agents_automators', 'model_id', '_sys_agents_automators_txt_model_id', '8%', 0, 0, '', '', 5),
+('sys_studio_agents_automators', 'profile_id', '_sys_agents_automators_txt_profile_id', '10%', 0, 0, '', '', 6),
+('sys_studio_agents_automators', 'message_id', '_sys_agents_automators_txt_message_id', '14%', 0, 32, '', '', 7),
+('sys_studio_agents_automators', 'messages', '_sys_agents_automators_txt_messages', '10%', 0, 0, '', '', 8),
+('sys_studio_agents_automators', 'added', '_sys_agents_automators_txt_added', '5%', 0, 0, '', '', 9),
+('sys_studio_agents_automators', 'status', '_sys_agents_automators_txt_status', '5%', 0, 0, '', '', 10),
+('sys_studio_agents_automators', 'actions', '', '20%', 0, 0, '', '', 11);
+
+INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `order`) VALUES
+('sys_studio_agents_automators', 'bulk', 'delete', '_Delete', '', 0, 1, 1),
+('sys_studio_agents_automators', 'single', 'tune', '_sys_agents_automators_btn_tune', '', 0, 0, 1),
+('sys_studio_agents_automators', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 2),
+('sys_studio_agents_automators', 'single', 'delete', '_Delete', 'remove', 1, 1, 3),
+('sys_studio_agents_automators', 'independent', 'add', '_sys_agents_automators_btn_add', '', 0, 0, 1);
+
+
+-- GRID: Agents Helpers
+INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `responsive`, `show_total_count`, `override_class_name`, `override_class_file`) VALUES
+('sys_studio_agents_helpers', 'Sql', 'SELECT * FROM `sys_agents_helpers` WHERE 1 ', 'sys_agents_helpers', 'id', 'added', 'active', '', 20, NULL, 'start', '', '', '', 'like', '', '', 2147483647, 1, 1, 'BxTemplStudioAgentsHelpers', '');
+
+INSERT INTO `sys_grid_fields` (`object`, `name`, `title`, `width`, `translatable`, `chars_limit`, `params`, `hidden_on`, `order`) VALUES
+('sys_studio_agents_helpers', 'checkbox', '', '2%', 0, 0, '', '', 1),
+('sys_studio_agents_helpers', 'switcher', '_sys_agents_helpers_txt_active', '8%', 0, 0, '', '', 2),
+('sys_studio_agents_helpers', 'name', '_sys_agents_helpers_txt_name', '15%', 0, 0, '', '', 3),
+('sys_studio_agents_helpers', 'model_id', '_sys_agents_helpers_txt_model_id', '10%', 0, 0, '', '', 5),
+('sys_studio_agents_helpers', 'profile_id', '_sys_agents_helpers_txt_profile_id', '10%', 0, 0, '', '', 6),
+('sys_studio_agents_helpers', 'prompt', '_sys_agents_helpers_txt_prompt', '25%', 0, 32, '', '', 7),
+('sys_studio_agents_helpers', 'added', '_sys_agents_helpers_txt_added', '10%', 0, 0, '', '', 8),
+('sys_studio_agents_helpers', 'actions', '', '20%', 0, 0, '', '', 9);
+
+INSERT INTO `sys_grid_actions` (`object`, `type`, `name`, `title`, `icon`, `icon_only`, `confirm`, `active`, `order`) VALUES
+('sys_studio_agents_helpers', 'independent', 'add', '_sys_agents_helpers_btn_add', '', 0, 0, 1, 1),
+('sys_studio_agents_helpers', 'single', 'tune', '_sys_agents_helpers_btn_tune', '', 0, 0, 1, 1),
+('sys_studio_agents_helpers', 'single', 'edit', '_Edit', 'pencil-alt', 1, 0, 1, 2),
+('sys_studio_agents_helpers', 'single', 'delete', '_Delete', 'remove', 1, 1, 1, 3),
+('sys_studio_agents_helpers', 'bulk', 'delete', '_Delete', '', 0, 1, 1, 1);
+
 -- GRIDS: Agents Providers
 INSERT INTO `sys_objects_grid` (`object`, `source_type`, `source`, `table`, `field_id`, `field_order`, `field_active`, `paginate_url`, `paginate_per_page`, `paginate_simple`, `paginate_get_start`, `paginate_get_per_page`, `filter_fields`, `filter_fields_translatable`, `filter_mode`, `sorting_fields`, `sorting_fields_translatable`, `visible_for_levels`, `override_class_name`, `override_class_file`) VALUES
 ('sys_studio_agents_providers', 'Sql', 'SELECT `tp`.*, `tpt`.`title` AS `provider_type` FROM `sys_agents_providers` AS `tp` LEFT JOIN `sys_agents_provider_types` AS `tpt` ON `tp`.`type_id`=`tpt`.`id` WHERE 1 ', 'sys_agents_providers', 'id', 'order', 'active', '', 100, NULL, 'start', '', 'tp`.`title,tpt`.`name,tpt`.`title', '', 'like', '', '', 2147483647, 'BxTemplStudioAgentsProviders', '');
@@ -6678,6 +6697,7 @@ CREATE TABLE IF NOT EXISTS `sys_agents_models` (
   `for_asst` tinyint(4) NOT NULL DEFAULT '0',
   `active` tinyint(4) NOT NULL DEFAULT '1',
   `hidden` tinyint(4) NOT NULL DEFAULT '0',
+  `added` int(11) unsigned NOT NULL DEFAULT '0',
   `class_name` varchar(128) NOT NULL default '',
   `class_file` varchar(255) NOT NULL  default '',
   PRIMARY KEY (`id`),

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

@@ -1121,6 +1121,10 @@
     <string name="_adm_lang_cnf_uninstall"><![CDATA[<h3>Uninstall "{0}" language?</h3><p>Uninstalling "{0}" language will also delete all of its data. Do you want to continue?</p>]]></string>
     <string name="_adm_lmi_cpt_actions"><![CDATA[Actions]]></string>
     <string name="_adm_lmi_cpt_api_config"><![CDATA[Configuration]]></string>
+    <string name="_adm_lmi_cpt_ai_providers"><![CDATA[AI Providers]]></string>
+    <string name="_adm_lmi_cpt_embedding_providers"><![CDATA[Embedding Providers]]></string>
+    <string name="_adm_lmi_cpt_tools"><![CDATA[Tools]]></string>
+    <string name="_adm_lmi_cpt_vector_store"><![CDATA[Vector Store]]></string>
     <string name="_adm_lmi_cpt_assistants"><![CDATA[Assistants]]></string>
     <string name="_adm_lmi_cpt_automators"><![CDATA[Automators]]></string>
     <string name="_adm_lmi_cpt_helpers"><![CDATA[Helpers]]></string>
@@ -1561,7 +1565,7 @@
     <string name="_adm_stg_cpt_category_api_general"><![CDATA[General]]></string>
     <string name="_adm_stg_cpt_category_api_layout"><![CDATA[Layout]]></string>
     <string name="_adm_stg_cpt_category_agents_general"><![CDATA[General]]></string>
-    <string name="_adm_stg_cpt_category_agents_usage"><![CDATA[Usage]]></string>
+    <string name="_adm_stg_cpt_category_agents_usage"><![CDATA[Assistants]]></string>
     <string name="_adm_stg_cpt_option_client_image_resize_width"><![CDATA[Image width to resize before upload (0 - disable)]]></string>
     <string name="_adm_stg_cpt_option_client_image_resize_height"><![CDATA[Image height to resize before upload (0 - disable)]]></string>
     <string name="_adm_stg_cpt_option_currency_code"><![CDATA[Currency code (for checkout system)]]></string>
@@ -2326,6 +2330,13 @@
     <string name="_sys_agents_helpers_field_result"><![CDATA[Result]]></string>
     <string name="_sys_agents_helpers_popup_add"><![CDATA[Add helper]]></string>
     <string name="_sys_agents_helpers_popup_edit"><![CDATA[Edit helper]]></string>
+    <string name="_sys_agents_models_txt_active"><![CDATA[Active]]></string>
+    <string name="_sys_agents_models_txt_name"><![CDATA[Name]]></string>
+    <string name="_sys_agents_models_txt_title"><![CDATA[Title]]></string>
+    <string name="_sys_agents_models_txt_key"><![CDATA[API Key]]></string>
+    <string name="_sys_agents_models_txt_params"><![CDATA[Parameters]]></string>
+    <string name="_sys_agents_models_txt_added"><![CDATA[Added]]></string>
+    <string name="_sys_agents_models_btn_add"><![CDATA[Add AI Provider]]></string>
     <string name="_sys_agents_assistants_txt_active"><![CDATA[Active]]></string>
     <string name="_sys_agents_assistants_txt_name"><![CDATA[Name]]></string>
     <string name="_sys_agents_assistants_txt_model_id"><![CDATA[Model]]></string>

+ 13 - 2
modules/boonex/russian/data/langs/system/ru.xml

@@ -1105,8 +1105,12 @@
     <string name="_adm_lang_cnf_uninstall"><![CDATA[<h3>Удалить "{0}" язык?</h3><p>Удаление "{0}" языка также удалит все его данные. Вы хотите продолжить?</p>]]></string>
     <string name="_adm_lmi_cpt_actions"><![CDATA[Действия]]></string>
     <string name="_adm_lmi_cpt_api_config"><![CDATA[Конфигурация]]></string>
-    <string name="_adm_lmi_cpt_automators"><![CDATA[Автоматизаторы]]></string>
+    <string name="_adm_lmi_cpt_ai_providers"><![CDATA[ИИ поставщики]]></string>
+    <string name="_adm_lmi_cpt_embedding_providers"><![CDATA[Поставщики вставок]]></string>
+    <string name="_adm_lmi_cpt_tools"><![CDATA[Инструменты]]></string>
+    <string name="_adm_lmi_cpt_vector_store"><![CDATA[Вектороное хранилище]]></string>
     <string name="_adm_lmi_cpt_assistants"><![CDATA[Ассистент]]></string>
+    <string name="_adm_lmi_cpt_automators"><![CDATA[Автоматизаторы]]></string>
     <string name="_adm_lmi_cpt_helpers"><![CDATA[Помощники]]></string>
     <string name="_adm_lmi_cpt_badges"><![CDATA[Бейджи]]></string>
     <string name="_adm_lmi_cpt_categories"><![CDATA[Категории]]></string>
@@ -1537,7 +1541,7 @@
     <string name="_adm_stg_cpt_category_api_general"><![CDATA[Общие]]></string>
     <string name="_adm_stg_cpt_category_api_layout"><![CDATA[Планировка]]></string>
     <string name="_adm_stg_cpt_category_agents_general"><![CDATA[Общие]]></string>
-    <string name="_adm_stg_cpt_category_agents_usage"><![CDATA[Применение]]></string>
+    <string name="_adm_stg_cpt_category_agents_usage"><![CDATA[Помощники]]></string>
     <string name="_adm_stg_cpt_option_client_image_resize_width"><![CDATA[Изменять ширину картинки перед загрузкой (0 - отключить)]]></string>
     <string name="_adm_stg_cpt_option_client_image_resize_height"><![CDATA[Изменять высоту картинки перед загрузкой (0 - отключить)]]></string>    
     <string name="_adm_stg_cpt_option_currency_code"><![CDATA[Код валюты (для платёжных систем)]]></string>
@@ -2301,6 +2305,13 @@
         <string name="_sys_agents_helpers_field_result"><![CDATA[Результат]]></string>
         <string name="_sys_agents_helpers_popup_add"><![CDATA[Добавить помощника]]></string>
         <string name="_sys_agents_helpers_popup_edit"><![CDATA[Редактировать помощника]]></string>
+        <string name="_sys_agents_models_txt_active"><![CDATA[Активный]]></string>
+        <string name="_sys_agents_models_txt_name"><![CDATA[Имя]]></string>
+        <string name="_sys_agents_models_txt_title"><![CDATA[Название]]></string>
+        <string name="_sys_agents_models_txt_key"><![CDATA[Ключ API]]></string>
+        <string name="_sys_agents_models_txt_params"><![CDATA[Параметры]]></string>
+        <string name="_sys_agents_models_txt_added"><![CDATA[Добавлено]]></string>
+        <string name="_sys_agents_models_btn_add"><![CDATA[Добавить поставщика ИИ]]></string>
         <string name="_sys_agents_assistants_txt_active"><![CDATA[Активный]]></string>
         <string name="_sys_agents_assistants_txt_name"><![CDATA[Название]]></string>
         <string name="_sys_agents_assistants_txt_model_id"><![CDATA[Модель]]></string>

+ 11 - 1
studio/classes/BxDolStudioAgents.php

@@ -8,10 +8,20 @@
  */
 
 define('BX_DOL_STUDIO_AGENTS_TYPE_SETTINGS', 'settings');
+define('BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS', 'assistants');
+
+define('BX_DOL_STUDIO_AGENTS_TYPE_AI_PROVIDERS', 'ai_providers');
+define('BX_DOL_STUDIO_AGENTS_TYPE_TOOLS', 'tools');
+define('BX_DOL_STUDIO_AGENTS_TYPE_EMBEDDING_PROVIDERS', 'embedding_providers');
+define('BX_DOL_STUDIO_AGENTS_TYPE_VECTOR_STORE', 'vector_store');
+
+
+/*
+ * Isn't used for now. Most probably they will be removed.
+ */
 define('BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS', 'automators');
 define('BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS', 'providers');
 define('BX_DOL_STUDIO_AGENTS_TYPE_HELPERS', 'helpers');
-define('BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS', 'assistants');
 
 define('BX_DOL_STUDIO_AGENTS_TYPE_DEFAULT', BX_DOL_STUDIO_AGENTS_TYPE_SETTINGS);
 

+ 98 - 51
studio/template/scripts/BxBaseStudioAgents.php

@@ -33,19 +33,34 @@ class BxBaseStudioAgents extends BxDolStudioAgents
 
         $this->aMenuItems = [
             BX_DOL_STUDIO_AGENTS_TYPE_SETTINGS => ['icon' => 'mi-agt-settings.svg'],
+            BX_DOL_STUDIO_AGENTS_TYPE_AI_PROVIDERS => ['icon' => 'mi-agt-providers.svg'],
+            BX_DOL_STUDIO_AGENTS_TYPE_TOOLS => ['icon' => 'mi-agt-helpers.svg'],
+            BX_DOL_STUDIO_AGENTS_TYPE_EMBEDDING_PROVIDERS => ['icon' => 'mi-agt-helpers.svg'],
+            BX_DOL_STUDIO_AGENTS_TYPE_VECTOR_STORE => ['icon' => 'mi-agt-helpers.svg'],
+            BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS => ['icon' => 'mi-agt-assistants.svg'],
+            /*
+             * Hidden for now. Most probably they will be removed.
+             * 
             BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS => ['icon' => 'mi-agt-providers.svg'],
             BX_DOL_STUDIO_AGENTS_TYPE_HELPERS => ['icon' => 'mi-agt-helpers.svg'],
-            BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS => ['icon' => 'mi-agt-assistants.svg'],
             BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS => ['icon' => 'mi-agt-automators.svg'],
+             */
         ];
 
         $this->aGridObjects = [
-            BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS => 'sys_studio_agents_automators',
-            BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS => 'sys_studio_agents_providers',
+            BX_DOL_STUDIO_AGENTS_TYPE_AI_PROVIDERS => 'sys_studio_agents_models',
             BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS => 'sys_studio_agents_assistants',
             BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS . '_chats' => 'sys_studio_agents_assistants_chats',
             BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS . '_files' => 'sys_studio_agents_assistants_files',
+
+            /*
+             * Hidden for now. Most probably they will be removed.
+             * 
+            BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS => 'sys_studio_agents_automators',
+            BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS => 'sys_studio_agents_providers',
             BX_DOL_STUDIO_AGENTS_TYPE_HELPERS => 'sys_studio_agents_helpers',
+             * 
+             */
         ];
     }
 
@@ -89,60 +104,32 @@ class BxBaseStudioAgents extends BxDolStudioAgents
 
         return $oOptions->getCode();
     }
-
-    protected function getAutomators()
+    
+    protected function getAiProviders()
     {
-        $oTemplate = BxDolStudioTemplate::getInstance();
-
-        $this->aPageJsOptions['sPageUrl'] .= 'automators';
-
-        if(($iId = bx_get('id')) !== false) {
-            if(($oCmts = BxDolAI::getInstance()->getAutomatorCmtsObject($iId, $oTemplate)) !== false) {
-                $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
-                    'sPageUrl' => $this->sSubpageUrl . 'automators&id=' . $iId,
-                    'sActionUrlCmts' => bx_append_url_params(BX_DOL_URL_ROOT . 'cmts.php', [
-                        'sys' => $oCmts->getSystemName(),
-                        'id' => $iId
-                    ])
-                ]);
-
-                return $oCmts->getCommentsBlock();
-            }
-            else
-                return MsgBox(_t('_error occured'));
-        }
+        $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
+            'sPageUrl' => $this->sSubpageUrl . 'providers',
+            'sActionUrlGrid' => bx_append_url_params(BX_DOL_URL_ROOT . 'grid.php', [
+                'o' => 'sys_studio_agents_providers'
+            ])
+        ]);
 
-        return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS]);
+        return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_AI_PROVIDERS]);
     }
     
-    protected function getHelpers()
+    protected function getTools()
     {
-        $oTemplate = BxDolStudioTemplate::getInstance();
-        
-        $this->aPageJsOptions['sPageUrl'] .= 'helpers';
-
-        if(($iId = bx_get('id')) !== false) {
-            $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
-                'sPageUrl' => $this->sSubpageUrl . 'helpers&id=' . $iId,
-            ]);
-            
-            $aHelper = BxDolAI::getInstance()->getHelperById($iId);
-
-            $aForm = $this->_getHelpersForm('tune', $aHelper);
-            $oForm = new BxTemplFormView($aForm);
-            $oForm->initChecker();
-
-            if($oForm->isSubmittedAndValid()) {
-                if($oForm->update($iId) !== false) {
-                    $sMessage = $oForm->getCleanValue('message');
-                    $oForm->aInputs['result']['value'] = BxDolAI::callHelper($iId, $sMessage);
-                }
-            }
-
-            return $oForm->getCode();
-        }
+        return MsgBox('Under construction');
+    }
+    
+    protected function getEmbeddingProviders()
+    {
+        return MsgBox('Under construction');
+    }
 
-        return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_HELPERS]);
+    protected function getVectorStore()
+    {
+        return MsgBox('Under construction');
     }
 
     protected function getAssistants()
@@ -236,6 +223,64 @@ class BxBaseStudioAgents extends BxDolStudioAgents
         return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS]);
     }
 
+    /*
+     * Isn't used for now. Most probably they will be removed.
+     * 
+    protected function getAutomators()
+    {
+        $oTemplate = BxDolStudioTemplate::getInstance();
+
+        $this->aPageJsOptions['sPageUrl'] .= 'automators';
+
+        if(($iId = bx_get('id')) !== false) {
+            if(($oCmts = BxDolAI::getInstance()->getAutomatorCmtsObject($iId, $oTemplate)) !== false) {
+                $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
+                    'sPageUrl' => $this->sSubpageUrl . 'automators&id=' . $iId,
+                    'sActionUrlCmts' => bx_append_url_params(BX_DOL_URL_ROOT . 'cmts.php', [
+                        'sys' => $oCmts->getSystemName(),
+                        'id' => $iId
+                    ])
+                ]);
+
+                return $oCmts->getCommentsBlock();
+            }
+            else
+                return MsgBox(_t('_error occured'));
+        }
+
+        return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS]);
+    }
+    
+    protected function getHelpers()
+    {
+        $oTemplate = BxDolStudioTemplate::getInstance();
+        
+        $this->aPageJsOptions['sPageUrl'] .= 'helpers';
+
+        if(($iId = bx_get('id')) !== false) {
+            $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
+                'sPageUrl' => $this->sSubpageUrl . 'helpers&id=' . $iId,
+            ]);
+            
+            $aHelper = BxDolAI::getInstance()->getHelperById($iId);
+
+            $aForm = $this->_getHelpersForm('tune', $aHelper);
+            $oForm = new BxTemplFormView($aForm);
+            $oForm->initChecker();
+
+            if($oForm->isSubmittedAndValid()) {
+                if($oForm->update($iId) !== false) {
+                    $sMessage = $oForm->getCleanValue('message');
+                    $oForm->aInputs['result']['value'] = BxDolAI::callHelper($iId, $sMessage);
+                }
+            }
+
+            return $oForm->getCode();
+        }
+
+        return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_HELPERS]);
+    }
+
     protected function getProviders()
     {
         $this->aPageJsOptions = array_merge($this->aPageJsOptions, [
@@ -247,6 +292,8 @@ class BxBaseStudioAgents extends BxDolStudioAgents
 
         return $this->getGrid($this->aGridObjects[BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS]);
     }
+     * 
+     */
 
     protected function getGrid($sObjectName, $bObject = false)
     {