从API.ai履行请求中获取代理信息

时间:2017-08-25 10:24:28

标签: node.js chatbot dialogflow

有没有办法可以从履行请求中获取API.ai代理商信息?

我正在尝试捕获可以从Agent传递的Node.js代码中的任何唯一参数。这将用于使用单个代码库继续使用多个代理的逻辑。

对于亚马逊Alexa,我可以从会话中获得技能申请ID。 API.ai中有类似的内容吗?

2 个答案:

答案 0 :(得分:0)

您可以使用API​​.AI sessionIdintentId,它们在代理商之间是唯一的。每次履行webhook请求都会发送sessionIdintentId *。发送的JSON类似于:

{
  "id": "1a4b6209-51ec-47a1-a797-2e2f71926ac8",
  "sessionId": "1503343146047"
  ...
}

但也包含其他元素。

如果您使用slot filling

* intentId可能会在意图ID后面包含其他数字标识符

来源:https://api.ai/docs/fulfillment#request

答案 1 :(得分:0)

如果你想获得代理ID,你可以做这样的事情(使用快速框架):

app.post(`/:agent_id/webhook`, (req, res) => {
 const apiai_agent_id = req.params.agent_id;
 // webhook code...
});

在这种情况下,对于每个代理的履行页面,您必须指定它自己的webhook URL https://mywebhooks.com/55982e7c-db17-47ee-92bb-176476228942/webhook

(您可以从浏览器的地址栏获取webhook网址的代理ID)