根据用户意图更改语言

时间:2019-10-30 16:10:51

标签: java dialogflow

我想用荷兰语和英语提供DialogFlow机器人。在欢迎消息中,我想询问用户他喜欢使用卡中的2个按钮使用哪种语言。这两个按钮导致两个后续意图:一个用于英语,一个用于荷兰语。

英语是一个简单的确认,因为他已经默认使用英语。荷兰人的后续意图却调用了Java API。这将触发包含确认事件和语言代码的FollowupEventInput。但是,这并没有按预期的方式工作,我仍然会用英语获得答案,而不是将DialogFlow切换到英语机器人。

下面是应该用荷兰语返回答案的类。

@Component
public class DutchLanguage implements IntentHandler {

    private final List<String> INTENT = Arrays.asList("c3b5b2ac-b7ef-4367-9823-a66c4f551b9d", "bc249b21-835a-4848-bb0a-8eacb0947786");

    @Override
    @Nonnull
    public List<String> getIntentId() {
        return INTENT;
    }

    @Override
    @Nonnull
    public WebhookResponse handleIntent(WebhookRequest webhookRequest) {
        final WebhookResponse.Builder builder = WebhookResponse.newBuilder()
                .setFollowupEventInput(EventInput.newBuilder()
                        .setLanguageCode("nl")
                        .setName("ChangeToDutchConfirmation")
                        .build());
        return builder.build();
    }
}

如前所述,这不会以荷兰语给出答案,而是以英语给出答案(根据荷兰语的确认意图,这是正确的)。

0 个答案:

没有答案