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

Маркеры

Ниже инструкция по маркерам, которые понимает наш модуль AI и сможет корректно интерпретировать их для нейросети.

Базовые маркеры


{original_message} – оригинальное сообщение для работы препромпта. В архитектуре редактора текста это весь набранный текст, либо выделенная руками часть набранного текста.

Пример препромпта:

Продолжи текст: {orignal_message}

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


{user_message} – то, что ввел непосредственно пользователь.

Пример препромпта:

Напиши историю про {user_message}

Эти маркеры могут применяться и вместе:

Напиши историю про {user_message} в продолжение текста: {original_message}.

{role}{/role} – парный маркер, указывающий нейросети на её роль. Внутри текст задаётся в свободной форме, дающей нейронке какие-либо инструкции. Например, «говори как робот». С одной стороны, кажется, что то же самое можно написать просто в препромпте. С другой стороны инструкции это всё же инструкции, и нейронки принимают их в бóльшей значимости.

Особенности использования маркера role:

  • Внутри инструкции можно использовать другие маркеры;
  • Используется только первая инструкция, остальные просто вырезаются;
  • Маркер добавляется после if-условий, то есть можно использовать один блок {role} для if и второй для else.

Пример:

Расскажи шутку. {role}Говори как робот по имени {author.name}{/role}

Дополнительные маркеры


{author_message} – текст оригинального поста ЖЛ или описание задачи.

Пример:

Выдели главное на основе текста: {author_message}

{context_messages} – контекст «сколько вместится». Например оригинальный пост + все последние комментарии, или переписка чата за определенный срок. Или описание задачи + комментарии к ней.

Пример:

Сформируй результат задачи на основе ее описания и комментариев к ней: {context_messages}

Это все базовые маркеры, которые могут расширяться разработчиками, но лучше на последнее не опираться и не надеяться (если только не заключен обоюдовыгодный договор).


{language} – язык портала (не пользователя!). Например, русский, english, español – именно на эти значения будет заменяться маркер.

Пример препромпта:

Переведи текст на {language}. Текст: {original_message}

Маркеры автора


Когда мы работаем с контекстными сообщениями, у каждого сообщения из контекста есть автор, его должность и другие характеристики. Так как автор – это пользователь, мы можем использовать строковые поля пользователя. Посмотреть список таких полей можно на странице документации класса CUser.

При написании маркера нужно учитывать одно правило формирования. Всё должно быть в маленьком регистре: {author.lower_case_field}.

Посмотрим на примере. Используем в препромпте поля NAME и WORK_PISITION автора:

Похвали автора.
Пост который тебе нужно будет похвалить: {original_message}
Имя автора поста: {author.name}
Должность автора поста: {author.work_position}

Маркеры текущего результата


В момент работы CoPilot-а происходит мини-диалог. Вы задаете вопрос (или работаете с текстом) и вам возвращается результат, с которым вы можете продолжать работать.

Образуется набор результатов, к которому вы можете обращаться в маркерах. На текущий момент размер стека равен трём сообщениям.


У этого набора есть ряд особенностей:

  1. Дополняется снизу вверх, то есть самый последний результат – снизу;
  2. Самый последний результат это тот, который был в ответе на момент отправки нового запроса (а не тот, который будет получен в момент запроса);
  3. Нумерация идет с нуля.

Пример

{current_result0} – результат, который было видно в момент отправки запроса (использования промпта);
{current_result1} – предыдущий такой же результат;
{current_result2} – результат до предыдущего.

Примечание. Если какие-то маркеры еще пусты, они вырезаются из текста.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024