百度AI智能审核

news/2024/5/19 23:06:46 标签: .netcore, c#, 人工智能

一、介绍

百度内容审核平台(Baidu Content Audit Platform)是百度推出的一款用于进行内容审核的平台。该平台利用人工智能技术,对用户上传的各类内容进行审核和过滤,以实现内容的合规和安全,可以识别和过滤涉黄、涉政、暴恐、广告、侵权等不同类型的违规内容。

二、使用

百度内容审核平台官网地址:内容审核_内容安全_智能审核-百度AI开放平台

  1. 注册百度账号并登录百度内容审核平台:可以通过百度内容审核平台的官方网站进行注册,并登录您的账号。
  2. 创建应用:在百度内容审核平台上创建一个新的应用。在创建应用时,需要提供应用的名称、描述等信息,得到里面的API Key和Secret Key。

2367cfa05c574175934e8eb757794358.png

 三、获取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;
}

 

 


http://www.niftyadmin.cn/n/5426902.html

相关文章

【C++】每日一题 146 LRU缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关键字的值&#xff0c;否则返回 -1 …

EasyRecovery恢复电脑丢失数据怎么样?

电脑是我们大家熟悉并且常用的数据存储设备&#xff0c;也是综合性非常强的数据处理设备。对于电脑设备来讲&#xff0c;最主要的数据存储介质是硬盘&#xff0c;电脑硬盘被划分成多个分区&#xff0c;在电脑上表现为C盘&#xff0c;E盘等&#xff0c;用来保存系统文件以及其他…

操作系统镜像文件(win,centos)

下载地址 MSDN, 我告诉你 - 做一个安静的工具站 如果想要在vm中全屏的建议下载待spl的镜像文件&#xff0c;不然会搞不起来全屏 找到自己写想要的镜像文件&#xff0c;这边我选了win7 复制圈起来的路径&#xff0c;到迅雷中新建下载即可 安装window可能需要密钥 33PXH-7Y6K…

.Net Core 与数据库

查询 Linq var indexList new long[] { 1, 2, 3}; List<long> list new List<long>(); if (String.IsNullOrWhiteSpace(request.Key) false) {var ret from aa in _db.TblAAjoin bb in _db.TblBBon aa.PId equals bb.Idjoin cc in _db.TblCCon aa.CId equals…

人工智能在未来的优势

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是一种模拟人类智能的技术&#xff0c;已经在现代科技中得到广泛应用&#xff0c;并且具有广阔的发展前景12。以下是人工智能在现代科技中的应用和未来发展趋势的介绍&#xff1a; 综上所述&#xff0c;…

Vue中的注意点

1. vue 组件化编码流程&#xff1a; &#xff08;1&#xff09;拆分静态组件&#xff1a;按照功能点拆分&#xff0c;命名不要与html元素冲突&#xff1b; &#xff08;2&#xff09; 实现动态组件&#xff1a;考虑好数据的存放位置&#xff1a; - 一个组件在用&#xff1a;放在…

数据结构入门篇 之 【双链表】的实现讲解(附完整实现代码及顺序表与线性表的优缺点对比)

一日读书一日功&#xff0c;一日不读十日空 书中自有颜如玉&#xff0c;书中自有黄金屋 一、双链表 1、双链表的结构 2、双链表的实现 1&#xff09;、双向链表中节点的结构定义 2&#xff09;、初始化函数 LTInit 3&#xff09;、尾插函数 LTPushBack 4&#xff09;、头…

Matlab中inv()函数的使用

在Matlab中&#xff0c;inv()函数是用来求解矩阵的逆矩阵的函数。逆矩阵是一个与原矩阵相乘后得到单位矩阵的矩阵。在数学中&#xff0c;矩阵A的逆矩阵通常用A^-1表示。 什么是逆矩阵 在数学中&#xff0c;对于一个n阶方阵A&#xff0c;如果存在一个n阶方阵B&#xff0c;使得…