Dialogflow V2-自定义上下文

时间:2019-03-15 09:39:30

标签: dialogflow

如何创建自定义系统上下文,以将值从我的API传递到不依赖任何事件的dialogflow。
我试图在输出上下文中添加相同的内容,但是由于上下文名称不存在,它给出了错误的无效参数。

这是下面我正在做的伪代码(Java),
1.通过设置凭据提供程序来定义contextSettings对象。
2.使用contextSettings对象创建ContextsClient对象。
3.通过设置父对象和上下文对象来创建CreateContextRequest对象。
4.使用ContextsClient.createContext(contextRequest)
获取最终的Context对象。 5.在queryParameters中设置上述上下文对象以传递DetectIntent请求。

但这在步骤4中失败,并且由于/ projects / session下不存在上下文名称而给出错误消息“ Invalid Argument”

请帮助我解决此问题。

我要创建自定义上下文的原因是,我需要从API设置值以传递给dialogflow,并且它与事件或特定流无关。

我们能够使用AIContext类在Dialogflow V1中创建自定义上下文,并在AIRequest对象中设置上下文对象。

谢谢, 罗恩

1 个答案:

答案 0 :(得分:0)

我能够解决问题。创建上下文对象时,我没有传递完整的上下文路径。

Context dialogflowContext = Context.newBuilder().setName(
                    "projects/[project-id]/agent/sessions/" + sessionId + "/contexts/[context-name]")
                    .setParameters(paramPair).setLifespanCount(1).build();