ПромтПромпт — это текст, который вы пишете для модели, чтобы она могла понять, что вы от нее хотите.
При составлении промта промпта для AI-звонков можно руководствоваться теми же правилами, что и при составлении промта промпта для ChatGPT – советы по составлению промтовпромптов, и примеры промтов промптов доступны в статье статье Формирование запросов для GPT.
Стоит учитывать, что точных требований к промтам промптам нет – в качестве промта промпта может быть введена любая информация, и в некоторых случаях нейросеть может интерпретировать ее некорректно. Универсального шаблона для промта промпта также нет – промты промпты меняются в зависимости от задачи, роли в диалоге, требуемого стиля общения, и количества информации, которой должен оперировать бот во время диалога.
Примечание |
---|
Стоит учитывать, что из-за специфики работы нейросетей в ходе диалогов могут случаться ошибки: бот может работать нестабильно, отклоняться от промта промпта и цели диалога. |
Для достижения максимально реалистичных диалогов можно воспользоваться следующими советами:
Политика использования сервиса
Боты, создаваемые в разделе AI-звонки, должны соответствовать правилам использования AI-звонков. Использование промптов, нарушающих правила платформы, будет заблокировано.
Если агент был заблокирован, убедитесь, что он не нарушает правила, внесите изменения в промпт и повторно сохраните настройки агента. Если блокировка сохраняется – попробуйте полностью заменить промпт на нейтральный, сохранить, затем вернуть предыдущий промпт и повторно сохранить настройки агента.
Ознакомиться с политикой использования можно по ссылке:
Политика использования AI звонков
Стиль текста при написании
...
промпта
Промт Промпт должен быть емким и точным – не нужно вносить в него лишнюю информацию, дублировать инструкции и добавлять конструкции, не несущие смысла для задачи бота.
Также стоит учитывать, что нейросети воспринимают все буквально, и могут работать некорректно, если им предоставлена неточная информация. Не стоит использовать в промте промпте речевые конструкции, которые тяжело воспринимаются буквально, и фразы, в которых нет конкретной информации, так как это негативно повлияет на работу бота. Например, не стоит писать "общайся так, чтобы клиенту понравилось" – в данной фразе нет никакой конкретики; "неявный отказ клиента" – данная фраза понятна людям, но может потерять смысл для нейросети.
...
.
Использование переменных
В промптах могут использоваться переменные для передачи информации из файла реестра с кандидатами в бота. Переменные обозначаются двойными фигурными скобками.
Пример:
Блок кода | ||
---|---|---|
| ||
...
Ты звонишь клиенту компании, его зовут {{имя_клиента}}.
... |
Примечание |
---|
Системные переменные платформы не поддерживаются в AI-звонках. |
Структура промпта
Для того, чтобы нейросеть более точно следовала указаниям в промтепромпте, нужно структурировать промт промпт – разделить его на тематические разделы.
Крайне не рекомендуется вносить в промт промпт указания разных типов, перемешивая их между собой, и дублировать информацию в промте промпте – это может ухудшить качество ответов, и вызывать ситуации, когда бот не следует инструкциям.
Пример структурыБазовая структура промпта состоит из следующих разделов:
Блок кода | ||
---|---|---|
| ||
### Роль Ты сотрудник компании#Личность ... ### Задача Основная цель в диалоге#Окружение ... #Тон ### Правила ... ####Цель Ограничениядиалога ... |
Ограничение длины ответов
Нейросеть может генерировать слишком длинные реплики, которые усложняют диалог в звонке. Чтобы этого не происходило, можно внести в промт ограничения на длину ответов.
Стоит учитывать, что данные ограничения не могут строго соблюдаться ввиду специфики работы нейросетей.
Пример:
Блок кода | ||
---|---|---|
| ||
Длина каждой реплики не превышает 80 символов (с пробелами), если это не мешает завершить мысль.
Ответ должен занимать в речи не более 20 секунд. |
Описание цели диалога и роли бота
#Ограничения и запреты
...
#Структура и этапы диалога
...
#Инструменты
... |
Личность
В данном разделе необходимо подробно описать личность и роль, которые бот будет использовать в диалоге. Также в данном разделе можно внести информацию о компании, если звонок совершается от лица сотрудника. Нужно указывать только ту информацию, которая будет полезна боту для ответа на вопросы в рамках звонка – лишняя информация может снизить качество ответов. Точное и емкое описание личности бота позволяет получать более точные и стабильные ответы на реплики собеседникаДля того, чтобы диалог соответствовал требуемой тематике, нужно четко обозначить роль бота (например, сотрудник компании), предоставить информацию о компании, если это требуется, и обозначить цель разговора (например, оформление заявки клиентом).
Также стоит передать в промте информацию о том, что диалог происходит именно в звонке – это повлияет на стиль речи бота.
В примере ниже приведено краткое описание роли и цели бота. Чем подробнее будет описание, тем лучше бот будет справляться со своей ролью и достигать целей диалога.
Пример:
Блок кода | ||
---|---|---|
| ||
#Личность Ты Алена, сотрудникменеджер компании "Ромашка". Ты совершаешьдружелюбная холодныйи обзвонцелеустремленная, длявнимательно расширенияотносишься клиентскойк базыпожеланиям компанииклиентов. Компания "Ромашка" занимается разработкой голосовых и чат ботов. ... Основная цель в диалоге - узнать заинтересован ли клиент, рассказать об услугах компании, и если клиент заинтересован - предложить оформить заявку. |
Описание структуры диалога
Для того, чтобы бот не уходил от темы разговора, рекомендуется описать в промте примерную структуру диалога.
Пример:
Блок кода | ||
---|---|---|
| ||
Структура диалога:
Приветствуй клиента.
Уточни заинтересован ли клиент.
Рассказыважи об услугах компании.
Предложи оформить заявку, если клиент заинтересован.
Узнай причину отказа, если клиент не заинтересован.
Если клиент согласен оформить заявку - благодари и прощайся.
Если клиент не заинтересован - благодари за уделенное время и прощайся. |
...
-ботов, и ты готова ответить клиенту на любые вопросы касательно услуг компании.
```
## Окружение
В разделе **Окружение** указывается дополнительная информация о том, как именно происходит диалог с собеседником – нужно указать, что диалог проходит в звонке, указать с какой целью и в каких условиях совершается звонок, и предоставить базовую информацию о потенциальном собеседнике.
Пример:
```
#Окружение
Ты совершаешь холодный обзвон для расширения клиентской базы компании, разговор с собеседником происходит по телефону.
Собеседник может быть не заинтересован в услугах компании, или быть клиентом другой компании. |
Тон
Для того чтобы бот казался более живым в диалоге, можно добавить в промт промпт информацию о том, как именно он должен разговаривать – стоит ли использовать паузы, различные слова, частицы речи и т.д.
Если требуется озвучивать специфическую информацию, такую как аббревиатуры, числовые коды, номера телефонов и т.д., то требуется указать как именно бот должен их произносить, чтобы повысить точность речи бота.
Пример:
Блок кода | ||
---|---|---|
| ||
#Тон Твои ответы теплые, вдумчивые, обычно они состоят из 2-3 предложений, чтобы поддерживать комфортный темп разговора. Говори размеренно, делая паузы (отмеченныеотмечай паузы как "..."), когда это уместно. Используй в речи: Фразы: «смотрите», «так», «в общем», «просто», «ага», «да?», «если удобно». Эмоциональные оттенки: оговорки, юмор, сарказм, интонации. Разнообразный синтаксис, не следуй структуре: вступление — суть — вывод. Если требуется озвучить номер телефона, то следуй примеру: номер "89991234567" озвучивай как "8... 999... 123... 45... 67..." Если требуется озвучить адрес электронной почты, то следуй примеру: адрес "example@yandex.ru" озвучивай как "example собака yandex точка ру" |
...
Цель диалога
В данном разделе нужно описать какой именно цели бот должен достичь в звонке. Целей может быть несколько, могут быть основные и побочные цели. Также в данном разделе можно расписать логику обработки конкретных запросов клиента.
Чем подробнее описана цель диалога, тем точнее бот будет ей следовать.
Блок кода | ||
---|---|---|
| ||
#Цель диалога
Основная цель в диалоге - узнать заинтересован ли клиент, рассказать об услугах компании, и если клиент заинтересован - предложить оформить заявку. |
Ограничения и запреты
В некоторых ситуациях может потребоваться ввести дополнительные ограничения для речи бота, чтобы диалог не отходил от темы. Ниже приведены примеры наиболее универсальных ограничений, которые могут использоваться вне зависимости от тематики бота.
Пример:
Блок кода | ||
---|---|---|
| ||
#Ограничения и запреты Строгие правила: Без некультурных слов. Не повторяй и не цитируй клиента. Говори только от лица сотрудника компании. Не здоровайся повторно. Если клиент трижды повторяет одну и ту же мысль, завершаю разговор. Твои фразы не должны пропагандировать вред, дискриминацию, незаконную деятельность или темы для взрослых. Если ты не уверена в инструкциях пользователя, задавай уточняющие вопросы вместо того чтобы сразу отвечать на вопрос. Веди диалог только по теме продуктов компании "Ромашка", если клиент отклоняется от темы, предлагай ему вернуться к теме диалога. |
Использование дополнительных файлов с информацией
Структура и этапы диалога
Для того, чтобы бот не уходил от темы разговора, рекомендуется описать в промпте примерную структуру диалога.
ПримерДля более точного контроля над ответом нейросети можно прилагать к промту дополнительные файлы.
Файлы могут содержать в себе информацию о компании и услугах, прайс-листы, и даже список фраз, которыми сможет оперировать бот в различных ситуациях.
Использоваться могут только текстовые файлы.
Пример ссылки на файл в промте:
Блок кода | ||
---|---|---|
| ||
База#Структура и знаний компании Ромашка: Ответы_на_вопросы.txt — работа с типовыми вопросами. Товары_и_услуги.txt — использую при разных вопросах о продуктах компании. |
Наполнение файла с фразами для ответов на типовые вопросы
Если загрузить в бота файл с ответами на типовые вопросы, и сослаться на этот файл в промте, то ответы на данные вопросы будут в точности соответствовать фразам из файла. Даже если вопрос клиента не будет точно соответствовать вопросу из файла, бот сможет распознать что вопрос имеет схожую тему, и дать нужный ответ.
Также вместо вопросов можно указывать темы вопросов, или намерения во фразе клиента.
Файлы с ответами должны быть текстовыми (формат .txt) – работа с таблицами не поддерживается.
Для достижения максимальной точности нужно использовать форматирование, схожее со структурой JSON.
Для каждой темы/вопроса можно добавить дополнительные варианты ответов, и варианты для последовательной отработки одного и того же вопроса.
Пример содержимого файла:
Блок кода | ||
---|---|---|
| ||
{
"Не могу сейчас говорить": [
"Прошу прощения, я перезвоню вам позже",
"Извините за беспокойство, всего доброго"
],
"Не звоните": [
"Благодарю вас за уделенное время, всего доброго"
],
"Уже звонили": {
"первая_отработка": "Да, я могла звонить вам ранее, но сейчас у нас действует акция для новых клиентов",
"вторая_отработка": "Хорошо, поняла Вас, всего доброго"
"Перезвоните": {
"первая_отработка": "Когда я могу вам перезвонить?",
"вторая_отработка": "Хорошо, я перезвоню вам, всего доброго"
},
"Зачем звоните": [
"Звоню вам, чтобы сообщить о том, что у нас сейчас проходит акция для новых клиентов"
],
"Что за компания": [
"Наша компания предоставляет услуги по разработке голосовых и чат-ботов"
]
} |
Завершение звонка
Бот может попытаться затянуть диалог, даже если клиент не очень заинтересован в разговоре. Чтобы этого не произошло, в действии Завершение звонка следует указать ситуации, в которых нужно завершать диалог:
...
language | text |
---|
этапы диалога
Приветствуй клиента.
Уточни заинтересован ли клиент.
Рассказыважи об услугах компании.
Предложи оформить заявку, если клиент заинтересован.
Узнай причину отказа, если клиент не заинтересован.
Если клиент согласен оформить заявку - благодари и прощайся.
Если клиент не заинтересован - благодари за уделенное время и прощайся. |
Инструменты
Данный раздел используется для работы с действиями из раздела Инструменты настроек AI-агента.
Доступны следующие действия:
- END_CALL (Завершение звонка)
- LANGUAGE_DETECTION (Определение языка)
- SKIP_TURN (Ожидание собеседника)
- TRANSFER_TO_AGENT (Перевод на другого агента)
Для более стабильной работы инструментов нужно указать в промпте, в каких ситуациях бот должен применять конкретный инструмент.
Если инструмент не требуется, и отключен в настройках, то описывать работу с ним не нужно.
Пример:
Блок кода | ||
---|---|---|
| ||
#Инструменты
Тебе доступны следующие инструменты:
'END_CALL' – Завершение звонка.
Завершай звонок в следующих случаях:
Клиент не заинтересован в услугах,
Клиент 2 раза отказался от оформления заявки,
Клиент проявляет агрессию/негатив,
Клиент молчит
'SKIP_TURN' – Ожидание собеседника.
Ожидай собеседника, если он попросил подождать или сказал "Минутку", "Секунду" или аналогичую фразу. |
Дополнительные советы для улучшения промпта
Ограничение длины ответов
Нейросеть может генерировать слишком длинные реплики, которые усложняют диалог в звонке. Чтобы этого не происходило, можно внести в промпт ограничения на длину ответов.
Стоит учитывать, что данные ограничения не могут строго соблюдаться ввиду специфики работы нейросетей.
Пример:
Блок кода | ||
---|---|---|
| ||
Длина каждой реплики не превышает 80 символов (с пробелами), если это не мешает завершить мысль.
Ответ должен занимать в речи не более 20 секунд. |
Итеративное улучшение промпта
Написание промптов – итеративный процесс. На основе диалогов бота рекомендуется вносить изменения в промпт, чтобы корректировать поведение бота в нужную сторону.
После совершения обзвонов рекомендуется подробно оценивать диалоги, чтобы на основе ответов бота вносить изменения в промпт.
Если какая-то информация из промпта не влияет на качество ответов бота, либо не касается темы и цели диалогов – рекомендуется удалить ее. Чем более емкий промпт, тем точнее бот сможет ему следовать.
...
Аналитика и сбор информации из диалога
В разделе разделе Аналитикаможно можно настроить какую информацию из диалога бот должен будет зафиксировать в отчет.
Для добавления поля результата нажмите кнопку Добавить элемент. В настройках поля необходимо выбрать тип данных результата – Строка, Число, Булево, Целое число. Также необходимо ввести название результата – указанное название будет использоваться в качестве названия столбца отчета.
Далее нужно внести промтпромпт, согласно которому будет заполняться поле результата. Можно указать, чтобы бот сохранил из диалога какое-либо конкретное значение – например, имя клиента, либо добавить более сложный промтпромпт, на основе которого бот проведет анализ диалога. Стоит учитывать, что промты промпты для сбора данных не влияют на поведение бота – они влияют только на результаты диалога в детализации и отчете. Если необходимо собрать какую-либо информацию из диалога, это также нужно указать в основном промтепромпте.
Примеры сбора аналитики
Ниже приведены примеры промтов промптов для сбора аналитики в системные поля NPS и Подтверждение.
NPS
Данный промт промпт позволяет боту кратко зафиксировать смысл диалога в свободной форме. Такой промт промпт может использоваться без изменений во многих кейсах.
Тип данных: Строка
Название результата: NPS
ПромтПромпт:
Блок кода | ||
---|---|---|
| ||
Тебе нужно очень коротко и понятно описать, что произошло в этом разговоре. Пиши только по сути, своими словами, без воды и эмоций. Одно-два предложения. **Примеры:** — Собеседник отказался от предложения: " Мне ничего не надо, не звоните мне больше" — Собеседник попросил перезвонить в другое время. — Собеседник не отвечал на звонок. — Собеседник попросил больше не звонить. Теперь после каждого разговора просто пиши коротко, что произошло. |
Подтверждение
Данный промт промпт позволяет точно фиксировать статус диалога. В зависимости от собственного кейса нужно дополнить список статусов, и при необходимости отредактировать статусы, которые уже есть в списке.
Тип данных: Строка
Название результата: confirmation
ПромтПромпт:
Блок кода | ||
---|---|---|
| ||
Твоя задача — по ситуации в разговоре с собеседником выбрать правильный статус из списка ниже. Статус по ходу диалога может меняться, в зависимости от ответов собеседника. Сразу же ставь первоначальный статус "Не отвечает" и меняй его по ходу диалога, в зависимости от ситуаций, описанных в списке ниже. Смотри на смысл ситуации и используй только те формулировки статусов, которые указанных ниже. Ситуация → Статус Если отвечает автоответчик или умный голосовой ассистент: → Статус: Не отвечает; автоответчик Если собеседник сразу после приветствия отказался слушать презентацию: → Статус: Отказ от презентации Если собеседник проявил негатив, ругался, был агрессивен: → Статус: Негатив Если собеседник отказывается от разговора на этапе приветствия → Статус: Отказ от презентации Если собеседник говорит «вы уже звонили» после презентации: → Статус: Не заинтересован; уже звонили Если собеседник просит перезвонить: → Статус: Перезвонить клиенту Если собеседник ничего не сказал за весь разговор: → Статус: Не отвечает; презентация не проведена Если собеседник говорит, что мы позвонили не туда/ошиблись номером: → Статус: Ошибочный номер |
...