1.pom.xml中引入腾讯云jar配置信息
XML
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>4.0.11</version>
</dependency>
2.application.yaml中添加配置
java
tencent:
tms:
secret-id: AKDahCRQ9bolQovlKccMpB
secret-key: tWswkHXWEenfCpCI7fxxhA
biz-type: test_demo
3.项目中映射配置信息
java
@Data
@Component
@ConfigurationProperties(prefix = "tencent.tms")
public class TencentTmsProperties {
private String secretId;
private String secretkey;
private String bizType;
}
4.封装敏感词校验工具类
java
@Slf4j
@Component
public class TencentTmsUtils {
@Autowired
private TencentTmsProperties tencentTmsProperties;
/**
* 敏感词过滤
*
* @param content
* @return
*/
public Boolean getTmsResult(String content) {
if (StringUtils.isEmpty(content) || StringUtils.isEmpty(content.trim())) {
return Boolean.TRUE;
}
Credential cre = new Credential(tencentTmsProperties.getSecretId(), tencentTmsProperties.getSecretkey());
TmsClient client = new TmsClient(cre, "ap-shanghai");
TextModerationRequest request = new TextModerationRequest();
request.setBizType(tencentTmsProperties.getBizType());
request.setContent(Base64.encode(content));
try {
TextModerationResponse response = client.TextModeration(request);
if (!ObjectUtils.isEmpty(response)) {
return "Pass".equals(response.getSuggestion());
}
//response.getLabel();//返回值:Normal:正常,Porn:色情,Abuse:谩骂,Ad:广告,Custom
//response.getSuggestion();//返回值:Block:建议屏蔽,Review :建议人工复审,Pass:建议通过
log.info("敏感词类型:" + response.getLabel() + "处理结果:" + response.getSuggestion());
} catch (TencentCloudSDKException e) {
log.error("Sensitive word detection failed, because: ", e);
}
return Boolean.FALSE;
}
}
5.业务代码中应用敏感词校验
java
// 获取评论内容信息
String content = req.getCommentContent();
if (!tencentTmsUtils.getTmsResult(content)) {
throw new BusinessException("评论内容包含敏感词语");
}