我现在停留在我的index.js中获取用户输入(用户说的内容)的问题。例如,用户说:请告诉我{animals}是否可以在温度{x}到{y}之间生活。我想得到什么动物,x和y的确切值(字符串),以便我可以检查它是否可以在我自己的服务器中。我想知道如何做到这一点,因为如果我将这三个参数注释到某些实体类别,实体需要映射到一些确切的键值。
ApiAiApp的方法非常有限:https://developers.google.com/actions/reference/nodejs/ApiAiApp
从我的角度来看,列出的方法都不适用于这种情况。
请帮忙!
答案 0 :(得分:2)
通常,API.AI实体用于某些已知值,而不是在webhook中侦听任何值并进行验证。首先,我确定了您希望验证的实体类型。对于温度(x和y),我使用API.AI' s system entities。为这些参数调用getArgument()(如上一个答案中所述)应该返回确切的数字值。
对于动物,我使用API.AI' s developer entities。您可以使用JSON或CSV在Entity控制台中上传它们。您可以启用API.AI automated expansion以允许用户说出您不支持的动物,然后在webhook中获取getArgument(),webhook将返回API识别的新值.AI 。您可以使用它来验证并回复相应的消息。对于每只动物,您还可以指定同义名称,并且当使用其中任何一个时,getArgument()将返回该动物的规范实体值。
额外提示,如果您希望用户可能会说多个动物,请务必检查API.AI意图的参数部分中的Is List框。
答案 1 :(得分:0)
如果"动物"," x"," y"在API.AI中的Intent中定义为参数,然后您可以使用ApiAiApp中定义的getArgument()
方法。
所以以下内容应该有效:
function tempCheck( app ){
var animals = app.getArgument('animals');
var x = app.getArgument('x');
var y = app.getArgument('y');
// Check the range and then use something like app.tell() to give a response.
}