我想用荷兰语和英语提供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();
}
}
如前所述,这不会以荷兰语给出答案,而是以英语给出答案(根据荷兰语的确认意图,这是正确的)。