Google上的对话stream/操作:提供关于链接输出build议的dynamic响应数据

我试图实现一个Dialogflow应用程序(在谷歌上的行动),它迄今为止工作得很好。 然而:有没有人知道是否有可能通过node.js定义更多的动作参数/上下文,所以我可以用它们以某种方式在Dialogflow中创builddynamic的“链接输出build议”?

详细内容:我尝试从用户请求一些参数,将它们映射到一组url(=作为某种数据库实现),然后将结果url写入json响应中。 目标:在Dialogflow的“响应> Google智能助理>inputurl”中包含这些响应url作为$ url,#deeplink.url(或类似)。

这有可能以任何方式? 先谢谢你。

更新:我也testing了构build一个丰富的响应的方法,但它似乎并没有工作。 例:

const richResponse = app .buildRichResponse() .addSimpleResponse('Flight from ' + origin + ' to' + destination) .addSuggestions("Find your flight:") .addSuggestions("Basic Card", "List", "Carousel") .addSuggestionLink("Search now", url); 

(app是require的一个实例('google-on-action')。DialogflowApp)

但是,他似乎停止了“addSimpleResponse”之后。

是。 您可以在您的webhook中创build一个上下文 ,并在该上下文中包含包含所需值的参数。 要使用您的示例,您可以创build一个上下文“deeplink”,并使用您要链接的URL在其中设置一个名为“url”的参数。 您应该也许有一个“标题”参数,因为链接build议和基本卡片除链接之外需要一个标题或网站名字。

创build上下文相当简单,但是取决于您如何生成JSON。 如果你正在使用node.js的google-on-library库,你可以使用类似的命令来创build它

 var contextParameters = { title: "Example Website!", url: "http://example.com/" }; app.setContext( "deeplink", 1, contextParameters ); 

如果你自己创build响应JSON ,你将有一个contextOut数组和你想要设置的上下文对象。 这部分JSON可能看起来像这样

 "contextOut": [ { "name": "deeplink", "lifespan": 1, "parameters": { "title": "Example Website!", "url": "http://example.com/" } } ] 

然后,在链接输出或基本卡的字段中,您可以参考#deeplink.title#deeplink.url 。 对于链接,它可能看起来像这样:

在这里输入图像说明

但是,一旦您完成实现,有时在Webhook中生成VUI和GUI元素将变得更容易,而不是将其设置为“Dialogflow”构build器的一部分。 如果您想要生成不同数量的卡片或传送带物品,则情况尤其如此。

Google文档上的操作提供了各种UI元素,可以与示例JSON和node.js代码一起返回以生成每个元素。 这些是Dialogflow通过Google反应选项卡上的操作提供的相同元素 – 只是您可以从您的webhook生成它们。