首页 > 解决方案 > Dialogflow 实现 API - 第一次调用比后续请求花费更多时间

问题描述

我正在开发一个调用 3rd 方 API 来获取数据的Messenger聊天机器人。API 通常在 2 秒内返回数据,但是当我从 Dialogflow 实现(内联函数)调用 API 时,第一次调用需要 20 多秒才能获取数据,这将影响 Dialogflow 5 秒超时。随后的请求在不到 2 秒的时间内执行。

我使用axios来调用 API。有什么建议可以提高响应时间吗?

下面是调用 API 的函数

function getArrearsData(agent,tenantId) {
console.log("Getting the Arrears Details");

 return axios.get(`${baseUrl}api/Integrations/Arrears?tenantId=${tenantId}`)
  .then((result) => {
    if (result.data) {
      if (result.data.responseCode == 12) {
        let arrearsData = {};
        if (result.data.arrears.length > 0) {
          let paidToDate = moment(result.data.arrears[0].paidToDate).format('DD/MM/YYYY');
          arrearsData = {
            arrearsAmount: "$" + result.data.arrears[0].arrearsAmount,
            arrearsDays: result.data.arrears[0].arrearsDays,
            paidToDate: paidToDate
          };
        } else {
          arrearsData = {
            arrearsAmount: "N/A",
            arrearsDays: "N/A",
            paidToDate: "N/A"
          };
        }
        agent.add("");
        agent.context.set({ name: 'rental_details', lifespan: 5, parameters: { arrearsDetails: arrearsData }});
        agent.setFollowupEvent('ARREARS_DETAILS_EVENT');
      } else {
        console.log("getting arrears data failed!");
        agent.add("");
        agent.add("something wrong");
        agent.setFollowupEvent('Q_AND_A_INTENT_EVENT');
      }
    } else {
      console.log("getting arrears data failed!");
      agent.add("");
      agent.add("something wrong");
      agent.setFollowupEvent('Q_AND_A_INTENT_EVENT');
    }
  });}

标签: axiosgoogle-cloud-functionsdialogflow-esdialogflow-es-fulfillment

解决方案


推荐阅读