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