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