В моем первом проекте Dialogflow есть определенные моменты, в которых я должен отправить какой-то ответ и перейти сразу к другому намерению (которое также отправляет текст).
Я попытался с помощью веб-крюка отправить это сообщение и сделать FollowupEventInput с кодом ниже.
final SessionName sessionName = SessionName.parse(webhookRequest.getSession());
final WebhookResponse.Builder builder = WebhookResponse.newBuilder()
.addFulfillmentMessages(
Intent.Message.newBuilder().setText(Intent.Message.Text.newBuilder()
.addText("This is the text I want to send.")
.build()))
.addOutputContexts(
Context.newBuilder().setName(ContextName.of(sessionName.getProject(), sessionName.getSession(), "Oilchange-haventchecked-followup").toString()
).setLifespanCount(1)
.build())
.setFollowupEventInput(EventInput.newBuilder().setName("StandstillQuestion").setLanguageCode("en"));
return builder.build();
}
Ожидаемый результат будет:
бот : это текст, который я хочу отправить.
бот : это текст из следующего намерения
Результат, который я получил:
бот : это текст следующего намерения
После этого я исследовал, в чем проблема, и натолкнулся на этот stackoverlow-вопрос, в котором в основном задавался тот же вопрос. (но в Python). Не было подходящего ответа на вопрос. Поэтому я решил спросить это снова.
Как бы я решил это?
Я не могу просто добавить текст из одного намерения в другое, потому что есть несколько намерений, которые должны быть направлены на этот второй.