Я работаю над чат-ботом Dialogflow, и в настоящее время я даю ответ, жестко запрограммированный для выполнения с помощью agent.add (). Однако владелец продукта хочет иметь возможность изменять формулировки без изменения и повторного развертывания кода. Какие для этого есть варианты, кроме хранения ответов в файле или в базе данных? Есть ли способ иметь переменные в ответе, когда вы добавляете его в раздел ответа в консоли Dialogflow, где эта переменная установлена в выполнение, но в противном случае ответ дается в соответствии с ответом в консоли? Есть ли способ выбрать, какой ответ выдается из ответов, установленных в консоли Dialogflow, от выполнения? Я использую библиотеку выполнения nodejs без действий в Google.
Дайте переменный ответ в Dialogflow без жесткого кодирования при выполнении
Ответы (1)
Думаю, у вас есть два варианта:
Используйте только одно намерение с различными параметрами
У вас может быть несколько вариантов ответов для одного намерения. Они будут иметь приоритет по максимальному количеству параметров, которые они могут заполнить. Например, если вы отправляете параметр «a» одному намерению с помощью
detectIntent
API, второй ответ здесь будет активирован и показан пользователю.This is a response1 without parameters
This is a response1 with parameter $a
‹- Это сработаетThis is a response1 with parameter $a and $b
В качестве небольшого взлома вы также можете отправить пустой юникод пробел здесь, если вы предпочитаете не генерировать никаких параметров на сервере. Не слишком чисто, но подойдет.
Используйте события, инициируемые серверной частью
В этом случае ваш веб-перехватчик / бэкэнд выберет правильный
event
для вызова. Следовательно, у вас будет несколько намерений, каждое с уникальным ответом. Вы также можете комбинировать этот подход с первым пунктом выше. Подробнее о событиях можно узнать здесь.