【问题标题】:IBM Watson Natural Language Understanding - Too Many Request ErrorIBM Watson 自然语言理解 - 请求过多错误
【发布时间】:2018-01-25 13:33:00
【问题描述】:

我正在通过 Node SDK 使用 IBM Watson Natural Language Understanding Service 进行文本分析。我有一个长度接近 20 到 30 的句子数组。当我尝试遍历数组并调用 NLU 分析 API 时,我收到 Error : Too Many Request

没有可用于批量处理文本分析的 API,我在 NLU 服务文档中看不到任何限制。我正在使用标准计划。

有什么办法可以消除这个错误?我想分析一个句子数组。

错误日志:

Error: Too Many Requests
at Request._callback (/home/vcap/app/node_modules/watson-developer-cloud/lib/requestwrapper.js:99:21)
at Request.self.callback (/home/vcap/app/node_modules/request/request.js:186:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request.<anonymous> (/home/vcap/app/node_modules/request/request.js:1163:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage.<anonymous> (/home/vcap/app/node_modules/request/request.js:1085:12)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1056:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)

更新:

添加源代码:

segmentList.forEach((segment) => {
    var params = {
        text: segment,
        features: {
            keywords: {
                sentiment: false
            },
            sentiment: {
                document: true
            }
        }
    };
    logger.info("Analyse Segment : " + segment);
    return new Promise((resolve) => {
        NLUService.analyze(params, (err, data) => {
            if (err != null) {
                logger.error(err.stack);
            }
            ctr += 1;
            // Inserting data.sentiment.document.score to Database   
            .
            .
            .           
            if (ctr == callSegments.length)
                resolve();
        });
    }).then(() => resolve());
});

【问题讨论】:

  • 能否请您编辑并添加您的源代码? 429 Too Many Requests,该服务正在限制您的请求,因为您的 IBM Cloud ID 每分钟提交超过 1200 个请求。

标签: ibm-cloud ibm-watson watson-nlu


【解决方案1】:

据我在使用 Natural Language Understanding 服务后的了解,似乎有 20 个并发请求的限制。

您需要确保您不会同时发送超过 20 个请求。 如果您查看 this blog 的帖子,您会看到一些关于如何并行运行 N 个 Promise 的模式。

【讨论】:

  • 我在他们的文档中没有这样的东西。!
  • 我认为没有记录
  • 我会将这个问题传递给服务文档团队。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
相关资源
最近更新 更多