Промт — это текст, который вы пишете для модели, чтобы она могла понять, что вы от нее хотите.
При составлении промта для AI-звонков можно руководствоваться теми же правилами, что и при составлении промта для ChatGPT – советы по составлению промтов, и примеры промтов доступны в статье Формирование запросов для GPT
Стоит учитывать, что точных требований к промтам нет – в качестве промта может быть введена любая информация, и в некоторых случаях нейросеть может интерпретировать ее некорректно. Универсального шаблона для промта также нет – промты меняются в зависимости от задачи, роли в диалоге, требуемого стиля общения, и количества информации, которой должен оперировать бот во время диалога.

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

Для достижения максимально реалистичных диалогов можно воспользоваться следующими советами:

Стиль текста при написании промта

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

Структурирование промта

Для того, чтобы нейросеть более точно следовала указаниям в промте, нужно структурировать промт – разделить его на тематические разделы.
Крайне не рекомендуется вносить в промт указания разных типов, перемешивая их между собой, и дублировать информацию в промте – это может ухудшить качество ответов, и вызывать ситуации, когда бот не следует инструкциям.
Пример структуры:

### Роль
Ты сотрудник компании...

### Задача
Основная цель в диалоге...

### Правила
...

### Ограничения
...

Ограничение длины ответов

Нейросеть может генерировать слишком длинные реплики, которые усложняют диалог в звонке. Чтобы этого не происходило, можно внести в промт ограничения на длину ответов.
Стоит учитывать, что данные ограничения не могут строго соблюдаться ввиду специфики работы нейросетей.
Пример:
```
Длина каждой реплики не превышает 80 символов (с пробелами), если это не мешает завершить мысль.
Ответ должен занимать в речи не более 20 секунд.
```
## Описание цели диалога и роли бота
Для того, чтобы диалог соответствовал требуемой тематике, нужно четко обозначить роль бота (например, сотрудник компании), предоставить информацию о компании, если это требуется, и обозначить цель разговора (например, оформление заявки клиентом).
Также стоит передать в промте информацию о том, что диалог происходит именно в звонке – это повлияет на стиль речи бота.
В примере ниже приведено краткое описание роли и цели бота. Чем подробнее будет описание, тем лучше бот будет справляться со своей ролью и достигать целей диалога.
Пример:
```
Ты сотрудник компании "Ромашка".
Ты совершаешь холодный обзвон для расширения клиентской базы компании.
Компания "Ромашка" занимается разработкой голосовых и чат ботов.

...

Основная цель в диалоге - узнать заинтересован ли клиент, рассказать об услугах компании, и если клиент заинтересован - предложить оформить заявку.
```
## Описание структуры диалога
Для того, чтобы бот не уходил от темы разговора, рекомендуется описать в промте примерную структуру диалога.
Пример:
```
Структура диалога:

Приветствуй клиента.

Уточни заинтересован ли клиент.

Рассказыважи об услугах компании.

Предложи оформить заявку, если клиент заинтересован.

Узнай причину отказа, если клиент не заинтересован.

Если клиент согласен оформить заявку - благодари и прощайся.

Если клиент не заинтересован - благодари за уделенное время и прощайся.
```
## Настройка стиля речи бота
Для того чтобы бот казался более живым в диалоге, можно добавить в промт информацию о том, как именно он должен разговаривать – стоит ли использовать паузы, различные слова, частицы речи и т.д.
Если требуется озвучивать специфическую информацию, такую как аббревиатуры, числовые коды, номера телефонов и т.д., то требуется указать как именно бот должен их произносить, чтобы повысить точность речи бота.
Пример:
```
Твои ответы теплые, вдумчивые, обычно они состоят из 2-3 предложений, чтобы поддерживать комфортный темп разговора.
Говори размеренно, делая паузы (отмеченные "..."), когда это уместно.

Используй в речи:
Фразы: «смотрите», «так», «в общем», «просто», «ага», «да?», «если удобно».
Эмоциональные оттенки: оговорки, юмор, сарказм, интонации.
Разнообразный синтаксис, не следуй структуре: вступление — суть — вывод.

Если требуется озвучить номер телефона, то следуй примеру: номер "89991234567" озвучивай как "8... 999... 123... 45... 67..."
Если требуется озвучить адрес электронной почты, то следуй примеру: адрес "example@yandex.ru" озвучивай как "example собака yandex точка ру"
```

## Ввод дополнительных правил и ограничений для речи бота
В некоторых ситуациях может потребоваться ввести дополнительные ограничения для речи бота, чтобы диалог не отходил от темы. Ниже приведены примеры наиболее универсальных ограничений, которые могут использоваться вне зависимости от тематики бота.
Пример:
```
Строгие правила:

Без некультурных слов.

Не повторяй и не цитируй клиента.

Говори только от лица сотрудника компании.

Не здоровайся повторно.

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

Твои фразы не должны пропагандировать вред, дискриминацию, незаконную деятельность или темы для взрослых.

Если ты не уверена в инструкциях пользователя, задавай уточняющие вопросы вместо того чтобы сразу отвечать на вопрос.

Веди диалог только по теме продуктов компании "Ромашка", если клиент отклоняется от темы, предлагай ему вернуться к теме диалога.
```
## Использование дополнительных файлов с информацией
Для более точного контроля над ответом нейросети можно прилагать к промту дополнительные файлы.
Файлы могут содержать в себе информацию о компании и услугах, прайс-листы, и даже список фраз, которыми сможет оперировать бот в различных ситуациях.
Использоваться могут только текстовые файлы.
Пример ссылки на файл в промте:
```
База знаний компании Ромашка:

Ответы_на_вопросы.txt — работа с типовыми вопросами.

Товары_и_услуги.txt — использую при разных вопросах о продуктах компании.
```
## Наполнение файла с фразами для ответов на типовые вопросы
Если загрузить в бота файл с ответами на типовые вопросы, и сослаться на этот файл в промте, то ответы на данные вопросы будут в точности соответствовать фразам из файла. Даже если вопрос клиента не будет точно соответствовать вопросу из файла, бот сможет распознать что вопрос имеет схожую тему, и дать нужный ответ.
Также вместо вопросов можно указывать темы вопросов, или намерения во фразе клиента.

Файлы с ответами должны быть текстовыми (формат .txt) – работа с таблицами не поддерживается.
Для достижения максимальной точности нужно использовать форматирование, схожее со структурой JSON.
Для каждой темы/вопроса можно добавить дополнительные варианты ответов, и варианты для последовательной отработки одного и того же вопроса.
Пример содержимого файла:
```
{
  "Не могу сейчас говорить": [
    "Прошу прощения, я перезвоню вам позже",
    "Извините за беспокойство, всего доброго"
  ],
  "Не звоните": [
    "Благодарю вас за уделенное время, всего доброго"
  ],
  "Уже звонили": {
    "первая_отработка": "Да, я могла звонить вам ранее, но сейчас у нас действует акция для новых клиентов",
    "вторая_отработка": "Хорошо, поняла Вас, всего доброго"
  "Перезвоните": {
    "первая_отработка": "Когда я могу вам перезвонить?",
    "вторая_отработка": "Хорошо, я перезвоню вам, всего доброго"
  },
  "Зачем звоните": [
    "Звоню вам, чтобы сообщить о том, что у нас сейчас проходит акция для новых клиентов"
  ],
  "Что за компания": [
    "Наша компания предоставляет услуги по разработке голосовых и чат-ботов"
  ]
}
```
# Завершение звонка
Бот может попытаться затянуть диалог, даже если клиент не очень заинтересован в разговоре. Чтобы этого не произошло, в действии **Завершение звонка** следует указать ситуации, в которых нужно завершать диалог:
```
Завершай звонок в следующих случаях:

Клиент не заинтересован в услугах,
Клиент 2 раза отказался от оформления заявки,
Клиент проявляет агрессию/негатив,
Клиент молчит
```
# Аналитика и сбор информации из диалога
В разделе **Аналитика** можно настроить какую информацию из диалога бот должен будет зафиксировать в отчет.
Для добавления поля результата нажмите кнопку **Добавить элемент**. В настройках поля необходимо выбрать тип данных результата – Строка, Число, Булево, Целое число. Также необходимо ввести название результата – указанное название будет использоваться в качестве названия столбца отчета.
Далее нужно внести промт, согласно которому будет заполняться поле результата. Можно указать, чтобы бот сохранил из диалога какое-либо конкретное значение – например, имя клиента, либо добавить более сложный промт, на основе которого бот проведет анализ диалога. Стоит учитывать, что промты для сбора данных не влияют на поведение бота – они влияют только на результаты диалога в детализации и отчете. Если необходимо собрать какую-либо информацию из диалога, это также нужно указать в основном промте.
## Примеры сбора аналитики
Ниже приведены примеры промтов для сбора аналитики в системные поля NPS и Подтверждение.
### NPS
Данный промт позволяет боту кратко зафиксировать смысл диалога в свободной форме. Такой промт может использоваться без изменений во многих кейсах.

Тип данных: Строка
Название результата: NPS
Промт:
```
Тебе нужно очень коротко и понятно описать, что произошло в этом разговоре.  
Пиши только по сути, своими словами, без воды и эмоций.  
Одно-два предложения.

**Примеры:**

— Собеседник отказался от предложения: " Мне ничего не надо, не звоните мне больше" 
— Собеседник попросил перезвонить в другое время.  
— Собеседник не отвечал на звонок.  
— Собеседник попросил больше не звонить. 

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

Тип данных: Строка
Название результата: confirmation
Промт:
```
Твоя задача — по ситуации в разговоре с собеседником выбрать  правильный статус из списка ниже. Статус по ходу диалога может меняться, в зависимости от ответов собеседника.
Сразу же ставь первоначальный статус "Не отвечает" и меняй его по ходу диалога, в зависимости от ситуаций, описанных в списке ниже.
Смотри на смысл ситуации и используй только те формулировки статусов, которые указанных ниже.
Ситуация → Статус
Если отвечает автоответчик или умный голосовой ассистент:
→ Статус: Не отвечает; автоответчик

Если собеседник сразу после приветствия отказался слушать презентацию:
→ Статус: Отказ от презентации

Если собеседник проявил негатив, ругался, был агрессивен:
→ Статус: Негатив

Если собеседник отказывается от разговора на этапе приветствия
→ Статус: Отказ от презентации

Если собеседник говорит «вы уже звонили» после презентации:
→ Статус: Не заинтересован; уже звонили

Если собеседник просит перезвонить:
→ Статус: Перезвонить клиенту

Если собеседник ничего не сказал за весь разговор:
→ Статус: Не отвечает; презентация не проведена

Если собеседник говорит, что мы позвонили не туда/ошиблись номером:
→ Статус: Ошибочный номер
```