В сценарии можно обращаться к модели GPT-3.5 TURBO, чтобы отвечать на различные вопросы.
Запросы к chatGPT корректно работают только в чатах. На входящей телефонии могут быть сбросы из-за долгих ответов нейросети.
На исходящей телефонии BPL-функции не работают.
Чтобы использовать chatGPT-3 в сценарии, сделайте следующие шаги:
1. Установите блок Вопроса.
a. В стрелке поставьте галочку Сохранить ответ.
b. Тип выходных данных выберите Ветка по умолчанию.
c. В Название переменной напишите question.
Таким образом мы сохраняем вопрос пользователя в переменную question.
2. В блоке Арифметика, в поле Тип выберите Произвольный тип.
3. В поле BPL-выражение напишите функцию для работы с chatGPT-3:
$answer = gpt3.ask($question, 0.7)
Где:
$answer – переменная, в которую будет записан ответ нейросети.
$question – запрос к нейросети на русском или английском языке.
0.7 – число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 – максимальная достоверность и минимальная вариативность, 1 – минимальная достоверность и максимальная вариативность).
4. Нажмите Преобразовать BPL в AST.
5. После блока Арифметика поставьте блок Условие и соедините их стрелкой. В стрелке напишите Успешно в Результат вычислений.
6. Установите блок с типом Информация. В поле Информационное сообщение (произносится роботом) напишите {answer}.
В этом блоке будет выводиться ответ нейросети.
7. В стрелке из блока Условия, в поле Тип выберите По умолчанию.
8. Установите блок Информация. В поле Информационное сообщение (произносится роботом) напишите Таймаут ответа.
Таймаут для получения ответа – 1 минута. Если для получения ответа потребуется больше 1 минуты, то будет возвращена переменная с пустым значением.
9. В стрелке из блока Условия, в поле Тип выберите Условие "ИЛИ" и добавьте два условия нажав кнопку Добавить условие.
В первом поле первого условия напишите {answer}, второе поле оставьте пустым.
В первом поле второго условия напишите {answer}, во втором поле напишите answer, без фигурных скобок.
В этом условии проверяется наличие ответа нейросети, так как если было возвращено пустое значение, значит время ожидания ответа превысило максимальное значение в 1 минуту.
10. При необходимости соедините стрелками блоки информации с блоком вопроса.
Это нужно, если вы хотите зациклить сценарий.
Пример работы
Протестировать работу фрагмента можно в тестовом виджете. Узнать как создать тестовый виджет можете в этой статье.
Таким образом вы можете задать вопрос нейросети chatGPT-3.
Дополнительные возможности
Возможности, которыми можно дополнить основной функционал интеграции chatGPT-3.
Управление контекстом запросов
При помощи добавления своего контекста к запросу пользователя, можно добиться более точного ответа нейросети.
Делается это путём добавления новой переменной, которая будет содержать нужный вам контекст и использованием BPL-функции str.concat() для склеивания запроса пользователя и вашего запроса в одно обращение к нейросети.
Пример BPL-выражения:
$context = "Ты консультант компании твин, эта компания занимается разработкой голосовых и чат-ботов. Ответь на поставленный вопрос: " $question = str.concat($context, $question) $answer = gpt3.ask($question, 0.8)
В котором:
$context - Переменная, в которой содержится ваш запрос с контекстом, который будет добавлен к запросу пользователя.
$question - Переменная, содержащая запрос пользователя, который обрабатывает нейросеть.
В данном случае переменная переопределяется с новым значением, содержащим результат соединения содержания переменной $context и старого содержания переменной $question.
str.concat() - BPL функция, которая принимает в качестве параметров две строки и осуществляет их соединение в одну.
$answer - Ответ нейросети.
Как выглядит итоговый запрос
В данном случае, если пользователь, к примеру, спрашивает: "помогите решить проблему:...", нейросеть увидит запрос как: "Ты консультант компании твин, эта компания занимается разработкой голосовых и чат-ботов. Ответь на поставленный вопрос: помогите решить проблему:...", то есть ваш запрос и запрос пользователя соединятся в единый запрос, который будет обработан нейросетью. Это даёт вам возможность задавать контекст беседы так, как вы сами того пожелаете.