Документация для разработчиков
Темная тема

Регистрация промптов

Рассказываем, как регистрировать промпты через 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
livefeed
(лента новостей, пост)
При написании поста Ленты новостей.
livefeed_comments
(лента новостей, комментарии)
При написании комментария к одному из постов Ленты новостей.
tasks
(задачи, текст)
При работе с описанием задачи.
tasks_comments
(задачи, комментарии)
При написании комментария к одной из Задач.
chat
(чат)
При написании сообщения в чате один на один или в групповых чатах.
mail
(почта)
При работе с письмами из личного ящика.
mail_crm
(почта CRM)
При работе с письмами с клиентами CRM в карточке сделок, контактов, компаний.
landing
(сайты)
При работе с текстами в конструкторе сайтов Б24.

В примере выше мы регистрируем новый пункт в 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());
		}
	}
);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024