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

Данная статья актуально только для чатов. Использование данной схемы в звонках невозможно, так как на генерацию ответа ChatGPT может уйти значительное количество времени.

Порядок действий

  1. Добавьте в сценарий блок Информация с приветствием (если необходимо), блок Вопрос и блок Условие, затем соедините их стрелками.
    В стрелке из блока вопроса в блок условия установите галочку Сохранить ответ, и в поле Название переменной введите question.
    В поле Тип выходных данных выберите тип Ветка по умолчанию.
  2. Затем добавьте блок Арифметика с типом Произвольный тип.
    Проведите стрелку из блока условия в блок арифметики, в параметрах стрелки выберите тип Условие "И", и создайте следующее условие:
    {gpt4Context} = gpt4Context
  3. В поле BPL-Выражение блока арифметики введите следующее выражение:
     $gpt4Context = ["Ты консультант компании Twin, которая занимается разработкой голосовых и чат роботов"]
    В данном выражении задается стартовый промпт для ChatGPT - это может быть роль в диалоге и различная информация, которая может быть интересна клиенту.
    После добавления выражения нажмите кнопку Преобразовать BPL в AST.

    Если в стартовом промте нет необходимости - данный блок арифметики можно не устанавливать.

  4. Далее добавьте Пустой блок, и проведите в него стрелку из блока условия.
    В параметрах стрелки выберите тип По умолчанию.
  5. Затем добавьте еще один блок Арифметика с типом Произвольный тип, и проведите в него стрелку из пустого блока.
    В поле BPL-Выражение блока арифметики введите следующее выражение:
     $answer = gpt4.ask($question, 0.5, true)
    Данное выражение отвечает за отправку запроса в ChatGPT 4, ответ сохраняется в переменную {answer}.
    0.5 в данном выражении это параметр temperature - чем он ниже, тем более точные, но менее разнообразные ответы будет возвращать ChatGPT.
    Значения этого параметра могут варьироваться от 0 до 1.
    После добавления выражения нажмите кнопку Преобразовать BPL в AST.
  6. Добавьте блок Условие и блок Информация.
    Данный блок информации будет возвращать ответ ChatGPT - в поле Информационное сообщение в параметрах этого блока введите {answer}.
    В параметрах стрелки из блока условия в блок информации выберите тип По умолчанию.
  7. Затем добавьте еще один блок Информация.
    Текст данного блока будет выводиться в случае таймаута ответа ChatGPT - если ответ слишком большой, то время ожидания ответа может превысить максимально допустимое, и система вернет пустой ответ.
    В поле Информационное сообщение параметров данного блока введите фразу по типу "К сожалению я не могу ответить на этот вопрос."
    Проведите стрелку из блока условия в этот блок информации, в параметрах стрелки выберите тип Условие "И", и создайте следующее условие:

    Данное условие проверяет наличие информации в переменной.
  8. Добавьте пустой блок, и проведите к нему стрелки из двух блоков информации.
    Затем проведите стрелку из пустого блока в первоначальный блок вопроса.
  9. Для корректной работы сценария установите повышенное значение параметра Допустимое количество циклов в круглом блоке.
    Максимальное количество циклов - 100.

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

  • Нет меток