PHP利用百度ai实现文本和图片审核
发布:smiling 来源: PHP粉丝网 添加日期:2021-11-22 11:24:01 浏览: 评论:0
这篇文章主要介绍了PHP利用百度ai实现文本和图片审核,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
之前做平台内容发布审核都是自己构建一套违禁词库,在代码中利用词库判断用户发布的内容,现在可以使用百度ai api完成这个功能,接下来就简单说下怎么做吧:
首先打开百度ai 开发平台 注册一个账号:
注册账号,进入控制台
创建自己的应用,获取apikey 和秘钥
进入文档页 文本审核:
图像审核:
文档很详细,实现用户发布内容审核 图片审核还是很方便简单的,我没有使用官方的sdk,简单的整合了一下作为练手,以下是我简单的代码demo:
- class Sentive
- {
- protected $accessTokenUrl = 'https://aip.baidubce.com/oauth/2.0/token';//获取token url
- protected $textUrl = 'https://aip.baidubce.com/rest/2.0/antispam/v2/spam';//文本审核url
- protected $imgUrl = 'https://aip.baidubce.com/api/v1/solution/direct/img_censor';//图片审核url
- protected $avatarUrl = 'https://aip.baidubce.com/rest/2.0/solution/v1/face_audit';//头像审核url
- protected $grant_type;
- protected $client_id;
- protected $client_secret;
- function __construct()
- {
- $this->grant_type = 'client_credentials';
- $this->client_id = 'xxx';//API Key
- $this->client_secret = 'xxx';//Secret Key
- }
- static function request($url = '', $param = '')
- {
- if (emptyempty($url) || emptyempty($param)) {
- return false;
- }
- $postUrl = $url;
- $curlPost = $param;
- $curl = curl_init();//初始化curl
- curl_setopt($curl, CURLOPT_URL, $postUrl);//抓取指定网页
- curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
- curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
- curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
- $data = curl_exec($curl);//运行curl
- curl_close($curl);
- return $data;
- }
- static function request_post($url = '', $param = array(), $type)
- {
- if (emptyempty($url) || emptyempty($param)) {
- return false;
- }
- $postUrl = $url;
- $curlPost = $param;
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $postUrl);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- // 要求结果为字符串
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- // post方式
- curl_setopt($curl, CURLOPT_POST, 1);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
- if ($type == "text") {
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
- } else {
- curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json;charset=utf-8'));
- }
- curl_setopt($curl, CURLINFO_HEADER_OUT, true);
- $data = curl_exec($curl);
- $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
- if ($code === 0) {
- throw new \Exception(curl_error($curl));
- }
- curl_close($curl);
- return $data;
- }
- //获取token
- public function getToken()
- {
- new Redis();
- $post_data['grant_type'] = $this->grant_type;
- $post_data['client_id'] = $this->client_id;
- $post_data['client_secret'] = $this->client_secret;
- $o = "";
- foreach ($post_data as $k => $v) {
- $o .= "$k=" . urlencode($v) . "&";
- }
- $post_data = substr($o, 0, -1);
- $res = self::request($this->accessTokenUrl, $post_data);
- $redis->setkey("filterToken", json_decode($res, true)['access_token']);
- return json_decode($res, true)['access_token'];
- }
- //文本审核
- public function textVerify($data)
- {
- new Redis();
- $token = $redis->get("filterToken");
- if (emptyempty($token)) {
- $token = $this->getToken();
- }
- $curl = $this->textUrl . "?access_token=" . $token;
- $result = self::request_post($curl, $data, "text");
- return json_decode($result, true);
- }
- //图片审核
- public function imgVerify($img)
- {
- $redis = new Redis();
- $token = $redis->get("filterToken");
- if (emptyempty($token)) {
- $token = $this->getToken();
- }
- $curl = $this->imgUrl . "?access_token=" . $token;
- $bodys = array(
- 'image' => $img,
- 'scenes' => array("ocr",
- "face", "public", "politician", "antiporn", "terror", "webimage", "disgust",
- 'watermark')
- );
- $bodys = json_encode($bodys);
- $result = self::request_post($curl, $bodys, "img");
- return json_decode($result, true);
- }
- //头像审核
- public function avatarVerify($img)
- {
- $redis = new Redis();
- $token = $redis->get("filterToken");
- if (emptyempty($token)) {
- $token = $this->getToken();
- }
- $curl = $this->avatarUrl . "?access_token=" . $token;
- $bodys = array(
- "configId" => "1",
- "images" => $img
- );
- $result = self::request_post($curl, $bodys, "text");
- return json_decode($result, true);
- }
- }
Tags: 百度ai PHP图片审核
- 上一篇:PHP7 mongoDB扩展使用的方法分享
- 下一篇:php查询内存信息操作示例
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)