错误429 - 请求太多 - 尝试删除IBM Watson Visual Recognition服务的所有分类器

时间:2016-06-07 21:58:21

标签: node.js ibm-cloud ibm-watson visual-recognition

我正在尝试删除我的IBM Watson Visual Recognition服务实例的所有分类器,以便我只能创建用于我的应用程序的新分类器。

为此,我编写了Node.js代码,列出所有分类器并发送删除请求。

当我执行它(并行数百个删除请求)时,我收到了429 error - too many requests。之后,我的所有删除请求(甚至是个别删除请求)都收到了404 error - Cannot delete classifier

我的问题是:

  1. 是否有更好的方法可以删除所有未逐一执行此操作的分类器?
  2. 为什么我现在无法删除单个分类器?在429太多请求错误之后是否有某些策略阻止了我?
  3. 这是我在多个删除请求中收到的429错误

    code: 429,
      error: '<HTML><BODY><span class=\'networkMessage\'><h2>Wow, is it HOT in here!</h2>My CPU cores are practically burning up thanks to all the great questions from wonderful humans like you.<p>Popularity has its costs however. Right now I just can\'t quite keep up with everything. So I ask your patience while my human subsystems analyze this load spike to get me more Power.<p>I particularly want to <b>thank you</b> for bringing your questions. PLEASE COME BACK - soon and frequently! Not only do I learn from your usage, but my humans learn from workload spikes (like this one) how to better adjust capacity with Power and Elastic Storage.<p>So again, thank you for helping to make me smarter and better. I\'m still young and growing, but with your patience and help, I hope to make you proud someday!</p>Your buddy,<br>Watson<br><span class=\'watsonIcon\'></span>p.s. Please share your experiences in the Watson C
    

    编辑:

    我注意到只有当我尝试删除服务提供的“默认”分类器(如“Graphics”,“Color”,“Black_and_white”等)时才会出现错误。当我尝试删除我用自己的图片创建的分类器时,删除工作正常。

    这是否是我不允许删除默认分类器的服务特征?如果是,有什么特别原因吗?我正在构建的应用程序不需要所有这些内置分类器,因此拥有所有这些是没用的。

    我知道我可以在请求新分类时通知我想要使用的分类器列表,但在这种情况下,我需要保留一个单独的分类列表,并且无法请求更多分类器通用分类而不在结果中获取默认分类器。

    我正在使用节点js模块“watson-developer-cloud”:“^ 1.3.1” - 我不确定它在内部使用的API版本。我刚刚注意到有更新的版本可用。如果有任何不同,我会更新并报告回来。

    这是我用来删除单个分类器的JS函数

    function deleteClassifier(classifier_id,callback){
        var data = {
          "classifier_id": classifier_id,
        };
        visualRecognition.deleteClassifier(data,function(err, response) {
          if (err){
            callback(err);
          }
          else{
            callback(null, response);
          }
        });
      }
    

    - 编辑

    当我使用V2 API时发生 - 但我认为它与API版本无关。请参阅接受的答案

2 个答案:

答案 0 :(得分:4)

  

1 - 是否有更好的方法可以删除所有未逐一执行此操作的分类器?

不,你必须逐个删除它们。

  

2-为什么我现在无法删除单个分类器?在429太多请求之后是否有一些政策阻止了我?

我怀疑当您对DELETE / classifiers / {classifier_id}的请求返回404时,这是因为classifier_id之前已成功删除。您可以通过执行GET /分类器操作来验证这一点,以查看您帐户的所有当前自定义分类器的列表。 404是对尝试删除无法找到的分类符的设计响应(如果之前已被删除,则会出现这种情况。)在遇到429之后,没有任何政策会阻止您。

你能举例说明你正在使用的网址 - 我很好奇它是测试服务(v2)还是最新版本v3?

答案 1 :(得分:1)

我发现问题在于我试图删除默认分类器,这是不允许的。

在API的更高版本(我编写此答案时为V3)中,只有一个默认分类器,无法删除。

我得到的404错误是因为我试图删除默认分类器。 Matt Hill在他的回答中提到,我的所有自定义分类器都已被删除