【发布时间】:2017-08-31 02:20:58
【问题描述】:
有没有办法可以从履行请求中获取 API.ai 代理信息?
我正在尝试从可以从代理传递的 Node.js 代码中捕获任何唯一参数。这将用于使用单个代码库处理多个代理的逻辑。
对于 Amazon Alexa,我可以从会话中获取技能应用程序 ID。 API.ai 中是否有类似的东西?
【问题讨论】:
标签: node.js chatbot dialogflow-es
有没有办法可以从履行请求中获取 API.ai 代理信息?
我正在尝试从可以从代理传递的 Node.js 代码中捕获任何唯一参数。这将用于使用单个代码库处理多个代理的逻辑。
对于 Amazon Alexa,我可以从会话中获取技能应用程序 ID。 API.ai 中是否有类似的东西?
【问题讨论】:
标签: node.js chatbot dialogflow-es
如果你想获取代理 id,你可以做这样的事情(使用 express 框架):
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 URL 的代理 ID)
【讨论】:
您可以使用 API.AI 的 sessionId 或 intentId,它们在代理之间是唯一的。 sessionId 和 intentId* 随每个履行 webhook 请求一起发送。发送的 JSON 类似于这样:
{
"id": "1a4b6209-51ec-47a1-a797-2e2f71926ac8",
"sessionId": "1503343146047"
...
}
但也会包含其他元素。
如果您使用slot filling,则*intentId 可能在意图ID 之后包含额外的数字标识符
【讨论】: