BxDolStudioAgents.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php defined('BX_DOL') or die('hack attempt');
  2. /**
  3. * Copyright (c) UNA, Inc - https://una.io
  4. * MIT License - https://opensource.org/licenses/MIT
  5. *
  6. * @defgroup UnaStudio UNA Studio
  7. * @{
  8. */
  9. define('BX_DOL_STUDIO_AGENTS_TYPE_SETTINGS', 'settings');
  10. define('BX_DOL_STUDIO_AGENTS_TYPE_ASSISTANTS', 'assistants');
  11. define('BX_DOL_STUDIO_AGENTS_TYPE_AI_PROVIDERS', 'ai_providers');
  12. define('BX_DOL_STUDIO_AGENTS_TYPE_TOOLS', 'tools');
  13. define('BX_DOL_STUDIO_AGENTS_TYPE_VECTOR_STORE', 'vector_store');
  14. define('BX_DOL_STUDIO_AGENTS_TYPE_AGENTS', 'agents');
  15. /*
  16. * Isn't used for now. Most probably they will be removed.
  17. */
  18. define('BX_DOL_STUDIO_AGENTS_TYPE_AUTOMATORS', 'automators');
  19. define('BX_DOL_STUDIO_AGENTS_TYPE_PROVIDERS', 'providers');
  20. define('BX_DOL_STUDIO_AGENTS_TYPE_HELPERS', 'helpers');
  21. define('BX_DOL_STUDIO_AGENTS_TYPE_DEFAULT', BX_DOL_STUDIO_AGENTS_TYPE_SETTINGS);
  22. class BxDolStudioAgents extends BxTemplStudioWidget
  23. {
  24. protected $oDbAi;
  25. protected $sPage;
  26. function __construct($sPage = "")
  27. {
  28. parent::__construct('agents');
  29. $this->oDbAi = new BxDolAIQuery();
  30. $this->sPage = BX_DOL_STUDIO_AGENTS_TYPE_DEFAULT;
  31. if(is_string($sPage) && !empty($sPage))
  32. $this->sPage = $sPage;
  33. }
  34. public function checkAction()
  35. {
  36. $sAction = bx_get('agt_action');
  37. if($sAction === false)
  38. return false;
  39. $sAction = bx_process_input($sAction);
  40. $aResult = ['code' => 1, 'message' => _t('_adm_pgt_err_cannot_process_action')];
  41. switch($sAction) {
  42. case 'agent-check-name':
  43. $sValue = false;
  44. if(($sValue = bx_get('agt_value')) !== false)
  45. $sValue = bx_process_input($sValue, BX_DATA_TEXT);
  46. else
  47. break;
  48. $sNameFld = 'name';
  49. $sNameVal = '';
  50. if(($iId = (int)bx_get('id'))) {
  51. $aAgent = $this->oDbAi->getAgentById($iId);
  52. if(strcmp($sValue, $aAgent[$sNameFld]) == 0)
  53. $sNameVal = $sValue;
  54. }
  55. $aResult = [
  56. 'code' => 0,
  57. 'title' => $sValue,
  58. 'name' => $sNameVal ?: uriGenerate($sValue, 'sys_agents_agents', $sNameFld, ['lowercase' => true])
  59. ];
  60. break;
  61. case 'agent-activate':
  62. $iValue = 0;
  63. if(($iValue = bx_get('agt_value')) !== false)
  64. $iValue = bx_process_input($iValue, BX_DATA_TEXT);
  65. else
  66. break;
  67. $aAgent = $this->oDbAi->getAgentById($iValue);
  68. if(!$aAgent || !$this->oDbAi->updateAgentField($iValue, 'active', 1 - (int)$aAgent['active']))
  69. $aResult = ['coed' => 2, 'message' => _t('_sys_txt_error_occured')];
  70. else
  71. $aResult = ['coed' => 0];
  72. break;
  73. }
  74. return $aResult;
  75. }
  76. }
  77. /** @} */