我想使用一个快递服务器和一个基于我的vps webhook的sqlite db来创建一个“问答”模块。
正确的方法是什么?
谢谢
到目前为止,我已经设置了(没有成功)类似的东西:
https://gist.githubusercontent.com/antonyharfield/66f3a403b0fbd7fd490fc615d190dc0c/raw/a0c104da569a60f12de9fac02735f75f962caf39/simpleServer.js来启动服务器,并从google测试控制台获得欢迎消息,并打开用于查询的麦克风,但我无法获得更多信息……(我被困在第一个将查询发布到我的服务器)。我搜索了最少的工作代码示例。
使用节点红色的webhook中继,我已经从数据库中获得了查询和答案,但是我无法将其发送回助手,而且我也不知道该怎么做...
我也首先在dialogflow中尝试了实体。
快速简单((无需代码),但我不喜欢它。
在https://console.dialogflow.com中,执行https://dialogflow.com/docs/entities/create-manage-entities
我现在有两列,第一列是结果,第二列是匹配的查询,然后在意向中移动,我有类似这样的内容dialogflow screenshot [nb:'numeroptl'是实体的名称值。]
它有效,但仅捕获第一个结果。
在我的csv中尝试使其成为一个非常简单的问题:
“第一条街道”,“左侧”,“卡洛”
“第一条街道”,“右侧”,“ giovanna”
“第二条街道”,“全部”,“马里奥”
我如何以Google助手为例:
并做出回应:
答案 0 :(得分:0)
您没有显示“实体系统”中的代码,但这听起来像是您需要做的事情。如果您要从数据库中获得多个响应,则需要以某种方式合并响应,或者确定如何让用户知道他们可以获取的其他信息以及如何获取。
答案 1 :(得分:0)
以csv示例为例,将左列映射到entities。例如,在这种情况下,第一条街道和第二条街道可以识别为@ sys.location实体。
如果启用webhook fulfillment,则您定义的参数将在意图检测中发送到服务器。
您可以使用这些参数来执行sql查询并获取所需的结果。最后,以文本形式发送回复,或者,如果您使用的是Google助理,则以RichResponse的形式发送回复。
//Using dialogflow-fulfillment-nodejs
function other(agent) {
// Parameters are located in agent.parameters
let locationInput = agent.parameters.location
// Your db code here
// Response using suggestions
agent.add(new Suggestion(`Carlo (left side)`));
agent.add(new Suggestion(`Giovanna (right side)`));
}