【问题标题】:Getting Agent Info from API.ai fulfilment request从 API.ai 履行请求中获取代理信息
【发布时间】:2017-08-31 02:20:58
【问题描述】:

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

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

对于 Amazon Alexa,我可以从会话中获取技能应用程序 ID。 API.ai 中是否有类似的东西?

【问题讨论】:

    标签: node.js chatbot dialogflow-es


    【解决方案1】:

    如果你想获取代理 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)

    【讨论】:

      【解决方案2】:

      您可以使用 API.AI 的 sessionIdintentId,它们在代理之间是唯一的。 sessionIdintentId* 随每个履行 webhook 请求一起发送。发送的 JSON 类似于这样:

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

      但也会包含其他元素。

      如果您使用slot filling,则*intentId 可能在意图ID 之后包含额外的数字标识符

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

      【讨论】:

        猜你喜欢
        • 2018-02-23
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        • 2018-07-17
        相关资源
        最近更新 更多