有没有办法可以从履行请求中获取API.ai代理商信息?
我正在尝试捕获可以从Agent传递的Node.js代码中的任何唯一参数。这将用于使用单个代码库继续使用多个代理的逻辑。
对于亚马逊Alexa,我可以从会话中获得技能申请ID。 API.ai中有类似的内容吗?
答案 0 :(得分:0)
您可以使用API.AI sessionId
或intentId
,它们在代理商之间是唯一的。每次履行webhook请求都会发送sessionId
和intentId
*。发送的JSON类似于:
{
"id": "1a4b6209-51ec-47a1-a797-2e2f71926ac8",
"sessionId": "1503343146047"
...
}
但也包含其他元素。
如果您使用slot filling ,* intentId可能会在意图ID后面包含其他数字标识符
答案 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)