Вот как я это сделаю. Но сначала я позабочусь о том, чтобы мои параметры были правильно объявлены внутри Dialogflow и чтобы я четко понимал структуру самого параметра.
Например, допустим, я определяю следующие параметры внутри Dialogflow:
В этом примере я сосредоточусь исключительно на параметре radius
.
После определения радиуса следующим образом, если пользователь введет 10 miles
во входной строке, структура радиуса в выполнении будет выглядеть так
conv.parameters.radius = {
'amount':10,
'unit':'mi'
}
Итак, если я хочу сохранить радиус для последующего использования, я могу сделать это так:
[INTENTS.INTENT_A]: (conv, params) => {
conv.data.radius = conv.parameters.radius.amount;
// or
conv.data.radius = params['radius']['amount']
}
А потом, чтобы получить к нему доступ позже, вы можете сделать
[INTENTS.INTENT_B]: (conv) => {
const savedRadius = conv.data.radius;
console.log(savedRadius)
}
Так что, по моему мнению, вам нужно убедиться, что вы четко понимаете структуру параметров, которые вы определяете внутри Dialogflow, чтобы получить доступ к нему внутри своего выполнения.
Хорошая практика ... Используйте тонны console.log(conv)
для каждого отдельного намерения, чтобы исследовать и понять структуру происходящего разговора
Надеюсь, это поможет. Дайте мне знать, как у вас все получилось.