Javascript 我可以在Dialogflow的内联编辑器中使用intent的参数吗?
使用Dialogflow时,会设置参数,简而言之,训练数据可能如下所示:Javascript 我可以在Dialogflow的内联编辑器中使用intent的参数吗?,javascript,dialogflow-es,Javascript,Dialogflow Es,使用Dialogflow时,会设置参数,简而言之,训练数据可能如下所示: 我想要奶酪比萨饼 我想要火腿比萨饼 给我一顿肉宴吧 因此,在奶酪、火腿和肉类盛宴上,您可以将它们存储在一个参数中,可能称为$pizzaoice 在意向书的回复部分,我知道我可以说“你选择了$pizzaoice” 但是我也可以在内联编辑器中这样做吗? 下面的方法不起作用,但我想如果可能的话,应该是这样的: agent.add('You selected' + $PizzaChoice); 有什么想法吗?如果您使用的是对
- 我想要奶酪比萨饼
- 我想要火腿比萨饼
- 给我一顿肉宴吧
$pizzaoice
在意向书的回复部分,我知道我可以说“你选择了$pizzaoice
”
但是我也可以在内联编辑器中这样做吗?
下面的方法不起作用,但我想如果可能的话,应该是这样的:
agent.add('You selected' + $PizzaChoice);
有什么想法吗?如果您使用的是
对话框流实现
库,并遵循其将参数指定给名为agent
的意图处理程序的惯例,那么您可以在agent.parameters
处获取对象中的所有参数
所以你想写的那行应该是
agent.add( 'You selected '+agent.parameters['PizzaChoice'] );
或者,如果要使用ES6反向报价模板:
agent.add( `You selected ${agent.parameters['PizzaChoice']}` );
谢谢你,囚犯,使用第二个选项非常有效。非常感谢。我刚刚注意到,当我写你的任何一条建议时,我会在建议
“['PizzaChoice']最好用点符号写”
…你知道这意味着什么吗?这意味着,在这种情况下,你可以将其写为代理.parameters.PizzaChoice
。我选择了我所使用的符号,因为参数名称可以包含无法使用点符号的字符。例如,“pizza choice”是有效的参数名称,但agent.parameters.pizza choice
无效,但agent.parameters['pizza-choice']
无效。