アプリに使用される新しい分類子のみを作成できるように、IBM Watson Visual Recognition サービスのインスタンスのすべての分類子を削除しようとしています。
そのために、すべての分類子をリストして削除リクエストを送信する Node.js コードを作成しました。
私がそれを実行したとき(何百もの削除リクエストを並行して)429 error - too many requests
、. その後、すべての削除リクエスト (個々のリクエストも含む) に404 error - Cannot delete classifier
.
私の質問は次のとおりです。
- 1つずつ実行していないすべての分類子を削除するより良い方法はありますか?
- 現在、個々の分類子を削除できないのはなぜですか? 429 too many requests エラーの後にブロックするポリシーはありますか?
これは、複数の削除リクエストで受け取った 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
編集:
サービスによって提供される「デフォルト」分類子 (「グラフィックス」、「カラー」、「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のバージョンには関係ないと思います。受け入れられた回答を見る