このトピックでは、Content Moderation SDK for Java を使用してカスタム画像ライブラリを管理する方法について説明します。
説明
パーソナライズされたコンテンツの管理要件に基づいて、画像サンプルをカスタマイズできます。その後、カスタム画像ライブラリを使用して、画像や動画内のわいせつなコンテンツ、テロリストコンテンツ、広告違反をインテリジェントに検出できます。関連パラメーターの詳細については、 [CreateImageLib] をご参照ください。
前提条件
Java の依存関係がインストールされていること。詳細については、 [インストール] をご参照ください。
説明[インストール] トピックに記載されている Java バージョンを使用して依存関係をインストールする必要があります。そうしないと、後続の操作呼び出しが失敗します。
ローカル画像またはバイナリ画像ストリームを画像モデレーションに送信する場合は、 [Extension.Uploader ユーティリティクラス] をダウンロードしてプロジェクトにインポートします。
カスタム画像ライブラリのクエリ
次のコードを使用して、カスタム画像ライブラリとフィードバックベースの画像ライブラリを含む、画像ライブラリをクエリできます。
DescribeImageLibRequest describeImageLibRequest = new DescribeImageLibRequest();
describeImageLibRequest.setServiceModule("open_api");
try {
// カスタム画像ライブラリとフィードバックベースの画像ライブラリを含む、すべての画像ライブラリをクエリします。
DescribeImageLibResponse describeImageLibResponse = client.getAcsResponse(describeImageLibRequest);
System.out.println(JSON.toJSONString(describeImageLibResponse));
List<DescribeImageLibResponse.ImageLib> allLibs = describeImageLibResponse.getImageLibList();
List<DescribeImageLibResponse.ImageLib> customImageLibs = new ArrayList<DescribeImageLibResponse.ImageLib>();
for (DescribeImageLibResponse.ImageLib imageLib : allLibs) {
String source = imageLib.getSource();
// カスタム画像ライブラリを一覧表示します。
if("MANUAL".equals(source)) {
customImageLibs.add(imageLib);
}
// フィードバックベースの画像ライブラリを一覧表示します。
if("FEEDBACK".equals(source)) {
customImageLibs.add(imageLib);
}
}
System.out.println(JSON.toJSONString(customImageLibs));
} catch (ClientException e) {
e.printStackTrace();
}カスタム画像ライブラリの作成
次のコードを使用して、カスタム画像ライブラリを作成できます。
説明 ビジネスシナリオに基づいてパラメーターを設定します。
CreateImageLibRequest createImageLibRequest = new CreateImageLibRequest();
createImageLibRequest.setServiceModule("open_api");
createImageLibRequest.setName("わいせつ画像検出ブラックリスト");
createImageLibRequest.setScene("PORN");
createImageLibRequest.setCategory("BLACK");
try {
CreateImageLibResponse createImageLibResponse = client.getAcsResponse(createImageLibRequest);
// リクエストの ID。例外が発生しない場合、カスタム画像ライブラリが作成されます。
String requestId = createImageLibResponse.getRequestId();
System.out.println(JSON.toJSONString(createImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}カスタム画像ライブラリの変更
次のコードを使用して、カスタム画像ライブラリの名前と、カスタム画像ライブラリが適用されるビジネスシナリオを変更できます。
UpdateImageLibRequest updateImageLibRequest = new UpdateImageLibRequest();
// カスタム画像ライブラリの ID。
updateImageLibRequest.setId(12345);
updateImageLibRequest.setName("カスタム画像ライブラリの新しい名前");
updateImageLibRequest.setBizTypes(JSON.toJSONString(Arrays.asList("comment")));
updateImageLibRequest.setCategory("WHITE");
updateImageLibRequest.setScene("PORN");
try {
UpdateImageLibResponse updateImageLibResponse = client.getAcsResponse(updateImageLibRequest);
// リクエストの ID。例外が発生しない場合、カスタム画像ライブラリが変更されます。
String requestId = updateImageLibResponse.getRequestId();
System.out.println(JSON.toJSONString(updateImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}カスタム画像ライブラリの削除
次のコードを使用して、カスタム画像ライブラリを削除できます。
説明 カスタム画像ライブラリを削除すると、ライブラリ内のすべての画像も削除されます。
DeleteImageLibRequest deleteImageLibRequest = new DeleteImageLibRequest();
// カスタム画像ライブラリの ID。
deleteImageLibRequest.setId(12345);
try {
DeleteImageLibResponse deleteImageLibResponse = client.getAcsResponse(deleteImageLibRequest);
// リクエストの ID。例外が発生しない場合、カスタム画像ライブラリが削除されます。
String requestId = deleteImageLibResponse.getRequestId();
System.out.println(JSON.toJSONString(deleteImageLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}カスタム画像ライブラリ内の画像のクエリ
次のコードを使用して、カスタム画像ライブラリに追加されたすべての画像をクエリできます。
DescribeImageFromLibRequest describeImageFromLibRequest = new DescribeImageFromLibRequest();
describeImageFromLibRequest.setImageLibId(1519);
describeImageFromLibRequest.setPageSize(20);
describeImageFromLibRequest.setCurrentPage(1);
try {
DescribeImageFromLibResponse describeImageFromLibResponse = client.getAcsResponse(describeImageFromLibRequest);
// 返す画像の数。
describeImageFromLibResponse.getTotalCount();
// 返すページ番号。
describeImageFromLibResponse.getCurrentPage();
// 各ページに返す画像の数。
describeImageFromLibResponse.getPageSize();
// 画像。
for (DescribeImageFromLibResponse.ImageFromLib imageFromLib : describeImageFromLibResponse.getImageFromLibList()) {
// 画像のプライマリキー ID。
imageFromLib.getId();
// 画像の URL。
imageFromLib.getImage();
// 画像サムネイルの URL。
imageFromLib.getThumbnail();
}
System.out.println(JSON.toJSONString(describeImageFromLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}カスタム画像ライブラリへの画像の追加
次のコードを使用して、カスタム画像ライブラリに画像を追加できます。画像を追加するには、次の手順を実行します。
- 画像アップロードクレデンシャルを取得します。
- カスタム画像ライブラリに画像をアップロードします。
- 画像がアップロードされたライブラリに関する情報と画像パスをサーバーに送信します。
// 画像アップロードクレデンシャルを取得します。
DescribeUploadInfoRequest describeUploadInfoRequest = new DescribeUploadInfoRequest();
describeUploadInfoRequest.setBiz("customImageLib");
DescribeUploadInfoResponse describeUploadInfoResponse = null;
try {
describeUploadInfoResponse = client.getAcsResponse(describeUploadInfoRequest);
System.out.println(JSON.toJSONString(describeUploadInfoResponse));
} catch (ClientException e) {
e.printStackTrace();
}
// 画像をアップロードします。
CustomLibUploader customLibUploader = new CustomLibUploader();
String object = null;
try {
object = customLibUploader.uploadFile(describeUploadInfoResponse.getHost(), describeUploadInfoResponse.getFolder(), describeUploadInfoResponse.getAccessid(),
describeUploadInfoResponse.getPolicy(), describeUploadInfoResponse.getSignature(),
"/Users/liuhai.lh/Desktop/a.jpg");
} catch (Exception e) {
e.printStackTrace();
}
if(org.apache.commons.lang.StringUtils.isNotBlank(object)){
UploadImageToLibRequest imageToLibRequest = new UploadImageToLibRequest();
imageToLibRequest.setImageLibId(1519);
imageToLibRequest.setImages(JSON.toJSONString(Arrays.asList(object)));
try {
UploadImageToLibResponse uploadImageToLibResponse = client.getAcsResponse(imageToLibRequest);
// リクエストの ID。例外が発生しない場合、画像はカスタム画像ライブラリに追加されます。
String requestId = uploadImageToLibResponse.getRequestId();
System.out.println(JSON.toJSONString(uploadImageToLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}
}カスタム画像ライブラリから画像を削除
次のコードを使用して、カスタム画像ライブラリから複数の画像を削除できます。
DeleteImageFromLibRequest deleteImageFromLibRequest = new DeleteImageFromLibRequest();
deleteImageFromLibRequest.setIds(JSON.toJSONString(Arrays.asList(669310)));
try {
DeleteImageFromLibResponse deleteImageFromLibResponse = client.getAcsResponse(deleteImageFromLibRequest);
// リクエストの ID。例外が発生しない場合、画像はカスタム画像ライブラリから削除されます。
String requestId = uploadImageToLibResponse.getRequestId();
System.out.println(JSON.toJSONString(deleteImageFromLibResponse));
} catch (ClientException e) {
e.printStackTrace();
}