Use o AI Guardrails SDK for Java para gerenciar bibliotecas de texto personalizadas no combate a spam em textos.
Tipos de biblioteca
As bibliotecas de texto classificam-se em duas dimensões:
Por tipo de conteúdo
|
Tipo |
Valor da API |
|
Biblioteca de palavras-chave |
|
|
Biblioteca de padrões de texto |
|
Por finalidade
|
Finalidade |
Valor da API |
|
Lista de bloqueios |
|
|
Lista de permissões |
|
|
Lista de revisão |
|
Pré-requisitos
Antes de começar, verifique se você tem:
Dependências Java instaladas — consulte Instalação
Use a versão do Java especificada no tópico Instalação. Versões diferentes causam falhas nas chamadas de operação.
Consultar bibliotecas de texto
DescribeKeywordLibRequest retorna todas as bibliotecas de texto da sua conta, incluindo as de combate a spam em texto, detecção de anúncios em imagens e combate a spam em áudio. Filtre os resultados por LibType, resourceType e source para obter apenas as bibliotecas desejadas.
Consultar bibliotecas de palavras-chave
DescribeKeywordLibRequest describeKeywordLibRequest = new DescribeKeywordLibRequest();
describeKeywordLibRequest.setServiceModule("open_api");
try {
DescribeKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(describeKeywordLibRequest);
List<DescribeKeywordLibResponse.KeywordLib> allLibs = describeKeywordLibResponse.getKeywordLibList();
List<DescribeKeywordLibResponse.KeywordLib> keywordLibs = new ArrayList<>();
for (DescribeKeywordLibResponse.KeywordLib lib : allLibs) {
String libType = lib.getLibType();
String resourceType = lib.getResourceType();
String source = lib.getSource();
// Custom keyword libraries for text anti-spam
if ("textKeyword".equals(libType) && "TEXT".equals(resourceType) && "MANUAL".equals(source)) {
keywordLibs.add(lib);
}
// Feedback-based keyword libraries for text anti-spam
if ("textKeyword".equals(libType) && "TEXT".equals(resourceType) && "FEEDBACK".equals(source)) {
keywordLibs.add(lib);
}
}
System.out.println(JSON.toJSONString(keywordLibs));
} catch (ClientException e) {
e.printStackTrace();
}
Consultar bibliotecas de padrões de texto
DescribeKeywordLibRequest describeKeywordLibRequest = new DescribeKeywordLibRequest();
describeKeywordLibRequest.setServiceModule("open_api");
try {
DescribeKeywordLibResponse describeKeywordLibResponse = client.getAcsResponse(describeKeywordLibRequest);
List<DescribeKeywordLibResponse.KeywordLib> allLibs = describeKeywordLibResponse.getKeywordLibList();
List<DescribeKeywordLibResponse.KeywordLib> patternLibs = new ArrayList<>();
for (DescribeKeywordLibResponse.KeywordLib lib : allLibs) {
String libType = lib.getLibType();
String resourceType = lib.getResourceType();
String source = lib.getSource();
// Custom text pattern libraries for text anti-spam
if ("similarText".equals(libType) && "TEXT".equals(resourceType) && "MANUAL".equals(source)) {
patternLibs.add(lib);
}
// Feedback-based text pattern libraries for text anti-spam
if ("similarText".equals(libType) && "TEXT".equals(resourceType) && "FEEDBACK".equals(source)) {
patternLibs.add(lib);
}
}
System.out.println(JSON.toJSONString(patternLibs));
} catch (ClientException e) {
e.printStackTrace();
}
Para obter a lista completa de parâmetros da API, consulte Obter uma lista de bibliotecas de texto.
Crie uma biblioteca de texto
Criar uma biblioteca de palavras-chave
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
createKeywordLibRequest.setServiceModule("open_api");
createKeywordLibRequest.setName("Term library for testing");
createKeywordLibRequest.setResourceType("TEXT"); // Text anti-spam
createKeywordLibRequest.setLibType("textKeyword"); // Keyword library
createKeywordLibRequest.setCategory("BLACK"); // Blocklist
try {
CreateKeywordLibResponse createKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest);
// Library created successfully; record the ID for subsequent operations
String libId = createKeywordLibResponse.getId();
} catch (ClientException e) {
e.printStackTrace();
}
Criar uma biblioteca de padrões de texto
CreateKeywordLibRequest createKeywordLibRequest = new CreateKeywordLibRequest();
createKeywordLibRequest.setServiceModule("open_api");
createKeywordLibRequest.setName("Text pattern library for testing");
createKeywordLibRequest.setResourceType("TEXT"); // Text anti-spam
createKeywordLibRequest.setLibType("similarText"); // Text pattern library
createKeywordLibRequest.setCategory("BLACK"); // Blocklist; also accepts WHITE or suspect
try {
CreateKeywordLibResponse createKeywordLibResponse = client.getAcsResponse(createKeywordLibRequest);
// Library created successfully; record the ID for subsequent operations
String libId = createKeywordLibResponse.getId();
} catch (ClientException e) {
e.printStackTrace();
}
Atualize uma biblioteca de texto
Atualize o nome ou os cenários de moderação (BizTypes) associados a uma biblioteca de texto.
UpdateKeywordLibRequest updateKeywordLibRequest = new UpdateKeywordLibRequest();
updateKeywordLibRequest.setId(0); // ID of the library to update
updateKeywordLibRequest.setName("New library name");
// Associate the library with one or more moderation scenarios
updateKeywordLibRequest.setBizTypes(JSON.toJSONString(Arrays.asList("New BizType_1", "New BizType_2")));
try {
UpdateKeywordLibResponse updateKeywordLibResponse = client.getAcsResponse(updateKeywordLibRequest);
// A non-empty requestId indicates success
String requestId = updateKeywordLibResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}
Exclua uma biblioteca de texto
DeleteKeywordLibRequest deleteKeywordLibRequest = new DeleteKeywordLibRequest();
deleteKeywordLibRequest.setId(3353); // ID of the library to delete
try {
DeleteKeywordLibResponse deleteKeywordLibResponse = client.getAcsResponse(deleteKeywordLibRequest);
// A non-empty requestId indicates success
String requestId = deleteKeywordLibResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}
Excluir uma biblioteca de texto remove permanentemente todas as entradas de texto contidas nela. Não é possível excluir bibliotecas de texto baseadas em feedback.
Pesquisar entradas de texto
Por padrão, a API retorna todas as entradas de texto de uma biblioteca com paginação. Defina o parâmetro keyword para pesquisar no modo difuso.
DescribeKeywordRequest describeKeywordRequest = new DescribeKeywordRequest();
describeKeywordRequest.setKeywordLibId(0); // Library ID
describeKeywordRequest.setPageSize(10); // Entries per page
describeKeywordRequest.setCurrentPage(1); // Page number
describeKeywordRequest.setKeyword("Text entry to search for"); // Optional: fuzzy search term
try {
DescribeKeywordResponse describeKeywordResponse = client.getAcsResponse(describeKeywordRequest);
Integer totalCount = describeKeywordResponse.getTotalCount(); // Total number of matching entries
Integer currentPage = describeKeywordResponse.getCurrentPage(); // Current page number
Integer pageSize = describeKeywordResponse.getPageSize(); // Entries per page
for (DescribeKeywordResponse.Keyword item : describeKeywordResponse.getKeywordList()) {
Integer id = item.getId(); // Entry ID
String createTime = item.getCreateTime(); // Creation time
Integer hitCount = item.getHitCount(); // Number of times this entry was matched
String keyword = item.getKeyword(); // The keyword text
}
} catch (ClientException e) {
e.printStackTrace();
}
Adicionar entradas de texto
CreateKeywordRequest createKeywordRequest = new CreateKeywordRequest();
createKeywordRequest.setKeywordLibId(0L); // Library ID
createKeywordRequest.setKeywords(JSON.toJSONString(Arrays.asList("Term_1", "Term_2")));
try {
CreateKeywordResponse createKeywordResponse = client.getAcsResponse(createKeywordRequest);
Integer successCount = createKeywordResponse.getSuccessCount(); // Number of entries added
List<String> invalidKeywordList = createKeywordResponse.getInvalidKeywordList(); // Entries that failed validation
} catch (ClientException e) {
e.printStackTrace();
}
Remover entradas de texto
DeleteKeywordRequest deleteKeywordRequest = new DeleteKeywordRequest();
deleteKeywordRequest.setKeywordLibId(String.valueOf("ID of the text library")); // Library ID
deleteKeywordRequest.setIds(JSON.toJSONString(Arrays.asList(1, 2))); // Entry IDs to remove
try {
DeleteKeywordResponse deleteKeywordResponse = client.getAcsResponse(deleteKeywordRequest);
// A non-empty requestId indicates success
String requestId = deleteKeywordResponse.getRequestId();
} catch (ClientException e) {
e.printStackTrace();
}
Próximos passos
Obter uma lista de bibliotecas de texto — Referência completa de parâmetros da API para
DescribeKeywordLibInstalação — Instale o AI Guardrails SDK for Java