一、介绍
百度内容审核平台(Baidu Content Audit Platform)是百度推出的一款用于进行内容审核的平台。该平台利用人工智能技术,对用户上传的各类内容进行审核和过滤,以实现内容的合规和安全,可以识别和过滤涉黄、涉政、暴恐、广告、侵权等不同类型的违规内容。
二、使用
百度内容审核平台官网地址:内容审核_内容安全_智能审核-百度AI开放平台
- 注册百度账号并登录百度内容审核平台:可以通过百度内容审核平台的官方网站进行注册,并登录您的账号。
- 创建应用:在百度内容审核平台上创建一个新的应用。在创建应用时,需要提供应用的名称、描述等信息,得到里面的API Key和Secret Key。
三、获取AccessToken
开始前需要安装一个包
NuGet\Install-Package RestSharp -Version 110.2.1-alpha.0.16
获取AccessToken需要上面的API Key和Secret Key两个密钥,使用URL获取得到数据,一共需要传递三个参数,两个密钥及一个固定参数,返回json格式数据。
返回结果中我们需要的是access_token字段,值得注意的是这个token是有时间限制的,有效期为30天,我们可以根据返回的expires_in字段查看具体的有效期,请求为post请求,这里需要提前获取到,后面的审核请求需要这个参数。
[HttpPost]
public async Task<string> Baiduapi()
{
string client_id = _class3.client_id;
string client_secret = _class3.client_secret;
RestClient client = new RestClient();
RestRequest request = new RestRequest(new Uri($"https://aip.baidubce.com/oauth/2.0/token?client_id={client_id}&client_secret={client_secret}&grant_type=client_credentials"), Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
string body = @"";
request.AddParameter("application/json", body, ParameterType.RequestBody);
RestResponse response = await client.ExecuteAsync(request);
string responseJson = $@"{response.Content}";
Class person = JsonConvert.DeserializeObject<Class>(responseJson);
return person.access_token;
}
四、文本审核
请求方式同样为post请求,需要传递我们上面获取到的AccessToken,返回一个json格式数据,其中的conclusion字段表示我们输入的文本是否合规,同样conclusionType字段也可以判断是否合规,分别为1:合规,2:不合规,3:疑似,4:审核失败。
[HttpPost]
public object BaiduText(string access_token, string text)
{
string host = "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=" + access_token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.KeepAlive = true;
String str = "text=" + $"{text}";
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
return result;
}
五、图片审核
图片审核同样为post请求,需要传递我们上面获取到的AccessToken,我们传递的图片需要为base64格式,所以我们在上传图片前需要将图片转换为base64格式,返回一个json格式数据,其中的conclusion字段表示我们输入的文本是否合规,和文本审核一致。
[HttpPost]
public object BaiduImg(string access_token)
{
string host = "https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined?access_token=" + access_token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.KeepAlive = true;
FileStream filestream = new FileStream("图片地址", FileMode.Open);
byte[] arr = new byte[filestream.Length];
filestream.Read(arr, 0, (int)filestream.Length);
string base64 = Convert.ToBase64String(arr);
filestream.Close();
String str = "image=" + HttpUtility.UrlEncode(base64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
return result;
}