Отправить сообщение FulfillmentMessage и FollowupEventInput через webhook - PullRequest
0 голосов
/ 24 октября 2019

В моем первом проекте 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). Не было подходящего ответа на вопрос. Поэтому я решил спросить это снова.

Как бы я решил это?

Я не могу просто добавить текст из одного намерения в другое, потому что есть несколько намерений, которые должны быть направлены на этот второй.

1 Ответ

0 голосов
/ 24 октября 2019

Это ожидаемое поведение, так как когда вы устанавливаете последующее событие, оно в основном указывает диалоговому потоку запускать другой рабочий процесс. Но чтобы обойти эту проблему, вам нужно установить событие followup, также установите контекст с первым предложением, которое вы хотите сказать с помощью второго предложения. Затем, выполняя свое последующее намерение, проверьте, установлен ли этот контекст и имеет ли оно какое-либо значение, если оно действительно так, то и это тоже говорите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...