我正在尝试在EventInput
对象中设置参数,以便将其发送到QueryInput
内部并检测Intent。我正在使用Java版本com.google.cloud:google-cloud-dialogflow:0.85.0-alpha
的DialogFlow V2Beta1 API。我知道基于
的json预期格式
Custom Events文档,但是所有可用的方法对我来说都不起作用。其他语言的相关问题也没有显示:set parameters in EventInput in Dialogflow V2 API。我正在丢失有关protobuf模式的东西吗?
我的参数如下:
我已经尝试了下面的代码,但是没有用,服务器的响应始终询问“ location_user是什么?”,这意味着该参数丢失了。在DialogFlow V2上会发生相同的问题。
queryInput = QueryInput.newBuilder()
.setEvent(
EventInput.newBuilder()
.setName("REVISION")
.setParameters(
Struct.newBuilder()
.putFields("location_user",
Value.newBuilder()
.setStringValue("Campinas")
.build())
.build()
)
.setLanguageCode(config.getLanguage()
)
)
.build();
输出json:
name: "REVISION"
parameters {
fields {
key: "location_user"
value {
string_value: "Campinas"
}
}
}
language_code: "pt-BR"
答案 0 :(得分:1)
您的代码似乎是正确的。 问题出在您的Intent配置中。
要引用参数表中的事件参数或响应, 使用以下格式:#event-name.parameter-name。
在您的示例中:将#REVISION.location_user放入“参数”表的“值”列中。
我已经检查了您的代码,它可以正常工作,请在下面找到我的Intent配置