资讯专栏INFORMATION COLUMN

利用百度ai实现文本和图片审核

shaonbean / 3601人阅读

摘要:接下来就简单说下怎么做吧首先打开百度开发平台注册一个账号注册账号,进入控制台创建自己的应用,获取和秘钥进入文档页文本审核图像审核文档很详细,实现用户发布内容审核图片审核还是很方便简单的。

之前做平台内容发布审核都是自己构建一套违禁词库,在代码中利用词库判断用户发布的内容,现在可以使用百度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 (empty($url) || empty($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 (empty($url) || empty($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 (empty($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 (empty($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 (empty($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);
    }

}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31402.html

相关文章

  • 知物由学 | AI在Facebook清理有害内容上扮演了什么角色?

    摘要:安全部队迅速采取报复行动,焚烧村庄并进行了持续数周的大规模屠杀。其中包括俄罗斯的选举干预就业歧视,以及缅甸种族灭绝的帮凶。应用机器学习小组的工程师对此表示赞同。 知物由学是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。知物由学希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也...

    morgan 评论0 收藏0
  • AI说再见!“辣眼睛”的买家秀

    摘要:过审是指最终审核通过的高质量买家秀,加精是指商家认可的买家秀,普通则是上述两种情况以外的其他买家秀。 showImg(https://segmentfault.com/img/remote/1460000018272118); 阿里妹导读:提起买家秀和卖家秀,相信大家脑中会立刻浮现出诸多画面。同一件衣服在不同人、光线、角度下,会呈现完全不同的状态。运营小二需从大量的买家秀中挑选出高质量...

    yeooo 评论0 收藏0
  • 深圳云栖大会人工智能专场:探索视频+AI,玩转智能视频应用

    摘要:在月日深圳云栖大会的人工智能专场中,阿里云视频服务技术专家邹娟将带领大家探索熟悉的视频场景中,技术如何应用落地,解决实际业务场景中的问题。 摘要: 在人工智能时代,AI技术是如何在各行业和领域真正的发挥应用和商业价值,带来产业变革才是关键。在3月28日深圳云栖大会的人工智能专场中,阿里云视频服务技术专家邹娟将带领大家探索熟悉的视频场景中,AI技术如何应用落地,解决实际业务场景中的问题。...

    李昌杰 评论0 收藏0
  • 如何通过人工智能“避开”内容安全的“坑”?

    摘要:人工智能技术的初步应用随着网络强国战略思想加强网络内容建设等指导思想的推出和强化,内容安全已经成为互联网企业生存和发展的生命线。 欢迎访问网易云社区,了解更多网易技术产品运营经验。 10月16日,2018年 AIIA人工智能开发者大会在苏州举办。会议邀请了国内外人工智能产业知名人物、国家政府主管部门、行业内顶尖企业、知名学者代表、开源社区优秀贡献团队及个人,共同交流了技术现状趋势、生态...

    _DangJin 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<