Регистрация промптов
Рассказываем, как регистрировать промпты через REST.
Регистрация
Для регистрации нам поможет метод ai.prompt.register. Давайте рассмотрим как использовать его на примере добавления категории шуток. Все любят шутки.
BX24.callMethod( 'ai.prompt.register', { category: ["livefeed","livefeed_comments"], code: 'rest_joke', icon: 'smile', prompt: 'Расскажи анекдот', translate: {"en":"A joke","ru":"Анекдот"} }, function(result) { if(result.error()) { console.error(result.error()); } else { console.info(result.data()); } } );
Пробежимся по параметрам метода, часть из которых показана в примере выше:
Параметр | Описание | С версии | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
category | Категория места встройки. CoPilot может располагаться в совершенно разных местах продукта. Список таких мест:
В примере выше мы регистрируем новый пункт в CoPilot ленты новостей (пост и комментарий). | |||||||||||||||||||
code | Уникальный код для промпта. Обязательно использование префикса rest_ . Этот код задаётся один раз при регистрации и затем его изменить нельзя. Обновление препромпта возможно только через его удаление. | |||||||||||||||||||
icon | Код иконки. Найти подходящую иконку вы можете в файле copilot_icons.pdf. | |||||||||||||||||||
prompt | Текст промпта. Именно он полетит на съедение нейронке (при этом пользователь его не увидит). В тексте препромпта можно использовать спец.форматирование: маркеры и условия. | |||||||||||||||||||
translate | Массив переводов пункта на разные языки. В идеале поддержать минимум языков: английский и язык портала. Поддержка других языков – на усмотрение. | |||||||||||||||||||
parent_code | Код родительской секции. Обязательно использование префикса rest_ . | |||||||||||||||||||
sort | Сортировка, указывается опционально. Отвечает за сортировку пунктов между собой. |
По сути всё. После выполнения команды мы увидим пункт CoPilot-а, который может порождать очень смешные анекдоты.
Пункт меню «Анекдот» теперь кликабелен. Давайте сделаем его родительским пунктом, добавив подпункты (после этого родительский пункт перестанет быть кликабельным).
Все что нужно, в изначальный код добавить код родительской секции parent_code, ну и sort, по желанию, для сортировки пунктов между собой.
BX24.callMethod( 'ai.prompt.register', { category: ["livefeed","livefeed_comments"], code: 'rest_joke_wolf', icon: 'smile', prompt: 'Расскажи анекдот про волка', translate: {"en":"A joke about wolf","ru":"Анекдот про волка"}, parent_code: 'rest_joke', sort: 100 }, function(result) { if(result.error()) { console.error(result.error()); } else { console.info(result.data()); } } );
Выполнив пару раз с разными данными видим уже такую картинку:
Ну и результат:
Как внедриться подпунктом в уже существующие пункты? Всё что нужно, это узнать код этого пункта, и воспользоваться предыдущим кодом. Узнать его можно, например, при открытии комментария к посту в ленте новостей. В этот момент улетает команда на получение информации по CoPilot-у, вот там то все и показано:
Внимательный читатель заметит, что есть еще категории визуальные, как попасть именно туда?
Достаточно передать в команде параметр section, который может равняться create или edit соответственно. Какой-то дополнительной логики это не добавляет. Это визуальное разделение, предполагающее, что сам препромпт так или иначе меняет текст или создает его.
Удаление
Если препромпт вам больше не нужен или вы хотите его изменить, просто выполните команду ai.prompt.unregister:
BX24.callMethod( 'ai.prompt.unregister', { code: 'rest_joke_wolf' }, function(result) { if(result.error()) { console.error(result.error()); } else { console.info(result.data()); } } );