イエローは、特にコンテンツツールとプラットフォームでは、我慢できないが防止できないものであるため、ポルノプラットフォームを構築してすべての人と共有するのに30分かかりました。
#データ準備
N個のリソースが見つかり、問題を解決できなかったため、特定のBubデータを猛烈にクロールし、ポルノ効果を確認する準備をしました。
#アカウントの準備
この記事はUCloudが提供するUAI-Censorを使用しており、現在は写真をサポートしており、暴力的なテロ組織や政治団体が続々と立ち上げられています。彼は1日あたり2,000件の無料通話を提供しているため、テストツールやニッチツールには十分です。
1.次のリンクを使用してアカウントを登録します
https://urlify.cn/Bj2Y3y
2. UAI-Censorアプリケーションを作成する
アプリケーションIDを取得し、ポルノAPI呼び出しを呼び出すときにそれを使用します。登録が成功したら、コンソールに入り、UAIを検索して、[AIコンテンツレビュー]をクリックします
[Create Application]をクリックし、カスタムアプリケーション名を入力して、[OK]をクリックします
[OK]をクリックすると、成功したポップアップボックスが表示され、強調表示された部分がアプリケーションIDです。バックアップ用に保持してください
3.公開鍵、秘密鍵、アプリケーションIDを取得する
わかりましたが、誰でもできませんか?すべてが公開鍵と秘密鍵を登録して、自分だけが使用できるようにする必要があります。クリックして次のリンクを入力してください
https://console.ucloud.cn/uapi/apikey
表示をクリックして公開鍵と秘密鍵を表示します
東風だけが準備できました
4.コーディング
コーディングする前に、手動でAPIを呼び出して、返された結果を確認できます
図に示すように、公開鍵、秘密鍵、アプリケーションIDを入力した後、検証をクリックすると、一連のJSONが返されます。実際に重要なのは、結果のポルノの提案、パスリリース、禁止禁止、チェックの手動レビューです。次に、上記のテストはパスリリースです。待ってください、信じられませんね。現時点では、特定のハブのリソースが役立ちます。ここに1つあります。
私はまっすぐに見るのに耐えられないので、私はタイプしただけですが、あなたは禁断を見ましたか?
直接コード化してみましょう。コードも非常にシンプルです。uaicensorPublicKeyとuaicensorPrivateKeyは独自のものであるため、SpringBootプロジェクトが使用されているため、ここではそれらを示しません。RestTemplateも非常にシンプルです。
/**
* @param imageUrl * @return pass-放行, forbid-封禁, check-人工审核
* @throws Exception */ public String check(String imageUrl) { String ucloudUrl = "http://api.uai.ucloud.cn/v1/image/scan";
String appId = "uaicensor-rjmvogpx";
String uaicensorPublicKey = null; String uaicensorPrivateKey = null; //图片绝对路径 RestTemplate rest = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); /** * 生成signature,首字母排序 */ String timestamp = System.currentTimeMillis() + "";
SortedMap<Object, Object> packageParams = new TreeMap<>(); packageParams.put("PublicKey", uaicensorPublicKey);
packageParams.put("ResourceId", appId);
packageParams.put("Timestamp", timestamp);
packageParams.put("Url", imageUrl);
String signature = null; try { signature = UCloudUtil.createSign(packageParams, uaicensorPrivateKey); } catch (Exception e) { return null;
} /** * 参数 */ MultiValueMap<String, Object> param = new LinkedMultiValueMap<>(); param.add("Scenes", "porn");
param.add("Method", "url");
param.add("Url", imageUrl);
/** * headers 参数 */ headers.setContentType(MediaType.parseMediaType("multipart/form-data; charset=UTF-8"));
headers.set("PublicKey", uaicensorPublicKey);
headers.set("Signature", signature);
headers.set("ResourceId", appId);
headers.set("Timestamp", timestamp);
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(param, headers); ResponseEntity<String> responseEntity = rest.exchange(ucloudUrl, HttpMethod.POST, httpEntity, String.class); String body = responseEntity.getBody(); JSONObject jsonObject = JSON.parseObject(body); if (jsonObject.getInteger("RetCode") == 0) {
String res = jsonObject.getJSONObject("Result").getJSONObject("Porn").getString("Suggestion");
return res;
} return null;
}
とても簡単ですか?それでは、発見の旅を始めましょう。