功能描述
根據文本類型的不同,文本庫分為關鍵詞文本庫和相似文本庫;根據管控目的不同,文本庫分為白名單、黑名單、疑似名單。關於參數的詳細資料,請參見自訂文本庫API文檔。
您需要使用Alibaba Content Security Service的API接入地址,調用本SDK介面。關於API接入地址的資訊,請參見接入地址(Endpoint)。
建立文本庫
建立關鍵詞文本庫
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
createKeywordLibRequest.setServiceModule("open_api");
createKeywordLibRequest.setName("測試關鍵詞文本庫");
// 設定為文本反垃圾情境使用。
createKeywordLibRequest.setResourceType("TEXT");
// 設定類型為關鍵詞。
createKeywordLibRequest.setLibType("textKeyword");
// 設定建立黑名單庫。
createKeywordLibRequest.setCategory("BLACK");
try {
CreateKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest);
// 關鍵詞文本庫ID。無異常則表示建立成功。
String libId = describeKeywordLibResponse.getId();
} catch (ClientException e) {
e.printStackTrace();
}
建立相似文本庫
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
createKeywordLibRequest.setServiceModule("open_api");
createKeywordLibRequest.setName("測試相似文本庫");
// 設定為文本反垃圾情境使用。
createKeywordLibRequest.setResourceType("TEXT");
// 設定類型為相似文本。
createKeywordLibRequest.setLibType("similarText");
// 相似文本庫支援建立黑名單庫、白名單、疑似名單。
createKeywordLibRequest.setCategory("BLACK");
try {
CreateKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest);
// 相似文本庫ID。無異常則表示建立成功。
String libId = describeKeywordLibResponse.getId();
} catch (ClientException e) {
e.printStackTrace();
}
修改文本庫
更新文本庫庫名以及修改文本庫所使用的檢測情境。
UpdateKeywordLibRequest updateKeywordLibRequest = new UpdateKeywordLibRequest();
// 設定待操作的文本庫ID。
updateKeywordLibRequest.setId(0);
// 設定新的文本庫名稱。
updateKeywordLibRequest.setName("修改後的名稱");
// 設定新的BizType。
updateKeywordLibRequest.setBizTypes(JSON.toJSONString(Arrays.asList("新的BizType_1", "新的BizType_2")));
try {
UpdateKeywordLibResponse updateKeywordLibResponse = client.getAcsResponse(updateKeywordLibRequest);
// 請求ID。無異常則表示修改成功。
String requestId = updateKeywordLibResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}
刪除文本庫
重要
刪除文本庫也將刪除文本庫下的文本。系統迴流的文本庫不允許刪除。
DeleteKeywordLibRequest deleteKeywordLibRequest = new DeleteKeywordLibRequest();
// 設定待刪除的文本庫ID。
deleteKeywordLibRequest.setId(3353);
try {
DeleteKeywordLibResponse deleteKeywordLibResponse = client.getAcsResponse(deleteKeywordLibRequest);
// 請求ID。無異常則表示刪除成功。
String requestId = deleteKeywordLibResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}
尋找文本
預設分頁擷取所有文本。如果設定了Keyword欄位,將模糊尋找包含該欄位值的文本。
DescribeKeywordRequest describeKeywordRequest = new DescribeKeywordRequest();
// 設定待查詢的文本庫ID。
describeKeywordRequest.setKeywordLibId(0);
describeKeywordRequest.setPageSize(10);
describeKeywordRequest.setCurrentPage(1);
// 可選,用於模糊查。
describeKeywordRequest.setKeyword("查詢文本");
try {
DescribeKeywordResponse describeKeywordResponse = client.getAcsResponse(describeKeywordRequest);
// 總數。
Integer totalCount = describeKeywordResponse.getTotalCount();
// 當前頁。
Integer currentPage = describeKeywordResponse.getCurrentPage();
// 分頁大小。
Integer pageSize = describeKeywordResponse.getPageSize();
for (DescribeKeywordResponse.Keyword keywordItem : describeKeywordResponse.getKeywordList()) {
// 關鍵詞主鍵ID。
Integer id = keywordItem.getId();
// 建立時間。
String createTime = keywordItem.getCreateTime();
// 關鍵詞的匹配叫用次數。
Integer hitCount = keywordItem.getHitCount();
// 關鍵詞。
String keyword = keywordItem.getKeyword();
}
} catch (ClientException e) {
e.printStackTrace();
}
添加文本
CreateKeywordRequest createKeywordRequest = new CreateKeywordRequest();
// 設定待操作的文本庫ID。
createKeywordRequest.setKeywordLibId(0L);
// 待添加的文本。
createKeywordRequest.setKeywords(JSON.toJSONString(Arrays.asList("關鍵詞_1", "關鍵詞_2")));
try {
CreateKeywordResponse createKeywordResponse = client.getAcsResponse(createKeywordRequest);
// 已成功添加的關鍵詞數量。
Integer successCount = createKeywordResponse.getSuccessCount();
// 無效的關鍵詞列表,即未添加成功的關鍵詞。
List<String> invalidKeywordList = createKeywordResponse.getInvalidKeywordList();
} catch (ClientException e) {
e.printStackTrace();
}
刪除文本
DeleteKeywordRequest deleteKeywordRequest = new DeleteKeywordRequest();
// 設定待操作的文本庫ID。
deleteKeywordRequest.setKeywordLibId(String.valueOf("文本庫ID"));
// 待刪除的文本。
deleteKeywordRequest.setIds(JSON.toJSONString(Arrays.asList(1, 2)));
try {
DeleteKeywordResponse deleteKeywordResponse = client.getAcsResponse(deleteKeywordRequest);
// 請求ID。無異常則表示刪除成功。
String requestId = deleteKeywordResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}