Намерение следовать с несколькими параметрами
У меня есть намерение на Dialogflow, где пользователь может спросить что-то похожее на это:
"Какая самая лучшая цена на обувь в прошлом месяце?"
Где перевести на параметры:
"Что такое @case @metric для @item @ date-period?"
Все идет нормально. Это намерение выводит контекст и работает нормально.
Сейчас,
Как создать дополнительный контекст, который позволяет пользователю обновлять один или несколько параметров, оставляя оставшиеся нетронутыми?
Например:
"А что хуже?" (обновляется только случай) "А что лучше для сандалий?" (дело и предмет обновляются) "А что хуже на прошлой неделе?" (регистр и дата обновляются) "А как насчет сапог на прошлой неделе?" (элемент и дата-период обновлены) и т. д.
Я имею в виду, у меня есть четыре параметра, и я хотел бы предоставить пользователю возможность продолжить разговор (контекст), изменяя один или несколько параметров.
Есть какой-нибудь способ создать какое-то "умное последующее намерение" или мне нужно создать все возможные комбинации последующих намерений?
Заранее спасибо.
1 ответ
Начнем с добавления выходного контекста для вашего первоначального намерения, скажем, "поиск". Сделайте так, чтобы ваше намерение вызывало ваше выполнение и сохраняйте параметры, примерно так:
app.data.case = app.getArgument('case');
app.data.metric = app.getArgument('metric');
app.data.item = app.getArgument('item');
app.data.date-period = app.getArgument('date-period');
Теперь создайте другое намерение и добавьте несколько выражений пользователя say, которые охватывают все параметры и имеют в качестве входного контекста тот же контекст, который вы указали для исходного намерения. Сделайте так, чтобы это намерение также вызывало ваше исполнение, и из того, какие параметры были заполнены, вы можете понять, что пользователь пытается изменить, поэтому, что бы пользователь не предоставил, вы можете получить его обратно из того, что вы сохранили ранее:
let _case = app.data.case;