Модуль «ТѣкстъМаiстеръ Искусственный Умъ» - Инструкция

Установка модуля и базовая настройка

Установка модуля

Для установки модуля необходимо:

Первоначальная настройка

После утановки модуля необходимо настроить реквизиты для доступа к GigaChat API.

Для получения реквизитов доступа к GigaChat API вам необходимо зарегистрироваться в панели разработчиков SBER: https://developers.sber.ru/studio/login.
После регистрации, создаём личное пространство, и нажимаем «Создать проект», где выбираем «GigaChat API»:

Далее переходим в созданный проект, и нажимаем на кнопку «Настройки API» слева в меню:

Нам потребуются: «Scope», «Client ID», «Authorization key»:

Копируем их в соответсвующие поля на странице настроек модуля (Сервис → «ТѣкстъМаiстеръ Искусственный Умъ» → Настройки модуля → Таб «SBER API»). Сохраняем.

Если всё корректно, то мы должны получить сообщение «Ответ от SBER API успешно получен»:

Настройка модуля и создание промптов

Настройка промпта

Для начала работы с модулем, необходимо создать настройки промпта, для этого надо нажать кнопку «Создать» на странице Сервис → «ТѣкстъМаiстеръ Искусственный Умъ» → «Настройка промптов».
Модуль может работать с любым инфоблоком.

Кнопка создания текста появится автоматически во вкладке детального описания стандартной формы редактировани элементов/разделов инфоблока после создания промпта, действующего на данный инфоблок.

Создание промпта:


1. Выбор информационного блока. Выберите инфоблок, на элементы которого будут распросраняться настройки данного промпта.

2. Выбор раздела информационного блока. Выберите раздел, на элементы которого будут распространяться настройки данного промпта.
Если выбрать «Все разделы», то текущая настройка будет действовать на все объекты инфоблока.
Если выбрать конкретный раздел, то только на объекты этого подраздела.

❗ При наличии двух конфигураций для одного инфоблока, приоритет будет выше у конфигурации, в которой выбран раздел.
Таким образом вы можете сделать отдельные настройки для разных разделов инфоблока.


3. Выберите компонент, на который будет действовать промпт.
Если выбрать «элементы», то данный промпт будет применяться при создании текстов для элементов информационного блока.
Если выбрать «разделы», то соответсвенно промпт будет применяться именно к описаниям разделов.

Благодаря этому механизму можно создавать различные настройки для описаний элементов и разделов.


4. Режим задания ПРОМТ'а:

Конструктор
Промпт создаётся с использованием конструктора, созданного нашими нейроэкспертами. Вы можете выбрать в нужные вам элементы конструктора. Рекомендуем использовать именно этот режим.
⚠️ При выборе опции, содержащей поле для ввода, обязательно заполнение дополнительных данных.

Задать промпт вручную
Каркас промпта можно написать вручную, используя макросы для подставновки изменяемых значений. ⚠️ Только для опытных пользователей!

Доступны макросы для подстановки:
#NAME# - Наименование элемента или секции (зависит от типа)
#PREVIEW_TEXT# - Превью элемента или секции (зависит от типа)

Свойства (для элементов):
#PROPERTY_CODE_%# - Значение свойства элемента по коду свойства
#PROPERTY_ID_%# - Значение свойства элемента по ID свойства

Свойства UF_* (для разделов):
#UF_%# - Значение свойства раздела по коду свойства

Пример использования механизма ручного задания промпта для рерайта текста заданного в свойстве:
- Создаём свойство с кодом "TEXTDRAFT".
- В качестве промпта указываем: "Сделай рерайт текста: #PROPERTY_CODE_TEXTDRAFT#".
- Заполняем исходный текст в поле свойства "TEXTDRAFT".
- Запускаем создание текста. В качестве исходных данных механизм возьмёт текст, сохранённый в свойстве "TEXTDRAFT". Новый текст попадёт в детальное описание.


5. Настройки AI:
С помощью данной настройки вы можете выбрать модель ИИ, которая будет использована для создания текстов. Рекомендуем оставить по умолчанию: «GigaChat-Max».

Управление доступом

На странице настроек модуля (Сервис → «ТѣкстъМаiстеръ Искусственный Умъ» → Настройки модуля → Таб «Доступ») можно настроеть группу пользователей, для которых будет отображаться кнопка создания текстов.
По умолчанию кнопка доступна для пользователей группы «Администраторы».

Вы можете создать новую группу и выделить в неё пользователей, если вам требуется показывать кнопку только определённым пользователям.

Создание текстов

Модуль может работать с любым инфоблоком.

Кнопка создания текста появится автоматически во вкладке детального описания стандартной формы редактировани элементов/разделов инфоблока после создания промпта, действующего на данный инфоблок.


Для создания текстов достаточно открыть форму редактирования элемента или раздела, для которого настроен промпт. Перейти на вкладку с детальным описанием и нажать кнопку «Создать текст».

После успешного создания, текст будет скопирован в визуальный редактор детального описания.
Внимание! Текст добавлен в поле описания товара. Не забудьте нажать кнопку «Сохранить», чтобы не потерять текст!
Все созданные тексты можно найти в истории запросов (Сервис → «ТѣкстъМаiстеръ Искусственный Умъ» → «История запросов»).

Информация для разработчиков

Модуль поддерживает ряд событий, которые позволяют перехватить и модифицировать данные используемые для работы. Ниже описания доступных событий с примерами кода обратчиков.
### ### ###
# Событие OnBeforeApplyMacro
#
# В качестве параметров передаётся массив, с ключами:
# - "PROMPT_CONFIG" - Параметры промпт конфига, которые были использованы для генерации промпта. Только чтение.
# - "PROMPT_TEXT_PART" - Кусочек текста промпта, до макроподстановки.
# - "MACRO_AR" - Массив замен для макроподстановки, вида: "#NAME#" => "Наименование товара".
#
# Пример обработчика, который, подменяет массив "MACRO_AR", добавляя новый элементы для замены "#CUSTOM_NAME#" и подменяющий "#NAME#".
### ### ###

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler("sqpx.aitextmaster", "OnBeforeApplyMacro", "OnBeforeApplyMacroHandler");
function OnBeforeApplyMacroHandler(\Bitrix\Main\Event $event){

  # Получаем параметры
  $arParams = $event->getParameters();

  ### Проверка параметров и модификация "MACRO_AR"
  if( $arParams["PROMPT_CONFIG"]["TYPE"] == "ELEMENT"
    && $arParams["PROMPT_CONFIG"]["IBLOCK_ID"] == 76
){
    $arParams["MACRO_AR"]["#NAME#"] = "Наименование товара переопределено";
    $arParams["MACRO_AR"]["#CUSTOM_NAME#"] = "Кастомное наименование товара";
  }

  # Возврат
  $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $arParams);
  return $result;
}
### ### ###
# Событие OnAfterGetPrompt
#
# Может быть использовано для перехвата и модификации текста промпта, перед отправкой ИИ запроса.
#
# В качестве параметров передаётся массив, с ключами:
# - "PROMPT_CONFIG" - Параметры промпт конфига, которые были использованы для генерации промпта. Только чтение.
# - "PROMPT_TEXT" - Текст промпта, который может быт ьмодифицирован
#
# Пример обработчика, который, проверяет тип и ID инфоблока промпт конфига, и в случае совпадения модифицирует полученный промпт, добавляя строку.
### ### ###

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler("sqpx.aitextmaster", "OnAfterGetPrompt", "OnAfterGetPromptHandler");
function OnAfterGetPromptHandler(\Bitrix\Main\Event $event){

  # Получаем параметры
  $arParams = $event->getParameters();
  ### Проверка параметров и модификация промпта
  if( $arParams["PROMPT_CONFIG"]["TYPE"] == "ELEMENT"
    && $arParams["PROMPT_CONFIG"]["IBLOCK_ID"] == 76 ){
    $arParams["PROMPT_TEXT"] .= PHP_EOL.PHP_EOL."Добавлен кусочек текста в обработчике события OnAfterGetPrompt.";
  }
  # Возврат
  $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::SUCCESS, $arParams);
  return $result;
}
### ### ###
# Событие OnTextPostProcessing
#
# В качестве параметров передаётся массив, с ключами:
# - "TEXT" - Полученный текст до постобработки.
#
# Если передать \Bitrix\Main\EventResult::ERROR то будет отменена стандартная постобработка.
#
# Пример обработчика, который, отменяеет стандартную постобработку и делает свои модификации текста.
### ### ###

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler("sqpx.aitextmaster", "OnTextPostProcessing", "OnTextPostProcessingHandler");
function OnTextPostProcessingHandler(\Bitrix\Main\Event $event){

  # Получаем параметры
  $arParams = $event->getParameters();

  ### Заменяем h3 на h6
  $replacemetsAr = [
    "<h3>" => "<h6>",
    "</h3>" => "</h6>"
  ];

  foreach( $replacemetsAr AS $key => $val ){
    $arParams["TEXT"] = mb_ereg_replace($key, $val, $arParams["TEXT"]);
  }

  # Возврат
  // Если передать \Bitrix\Main\EventResult::ERROR то будет отменена стандартная постобработка.
  $result = new \Bitrix\Main\EventResult(\Bitrix\Main\EventResult::ERROR, $arParams);
  return $result;
}