Намерение следовать с несколькими параметрами

У меня есть намерение на 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;
Другие вопросы по тегам