laravel使用单例模式实现百度审核功能(使用全程)

文章介绍了如何在PHP中调用百度智能云的内容审核API,通过创建应用获取APIKey和SecretKey,实现文本、图片和视频的审核。此外,文章强调了百度审核的高效、准确和成本效益,并讨论了使用单例模式在管理共享资源和提高程序性能方面的优势。
摘要由CSDN通过智能技术生成

首先,我们需要在百度智能云中的人工智能下方内容审核里创建一个应用,获取到应用的API Key和Secret Key。之后,我们将通过PHP调用百度AI平台提供的API接口实现图片和文本的审核

 

完成以上操作就可以使用百度的审核功能了

我个人框架当中Api_key和Secret_key存放的位置 。

代码如下:

//私有的静态属性
    private static $TextReview;
    //私有的构造方法
    private function __construct()
    {

    }
    //私有的克隆方法
    private function __clone()
    {
        // TODO: Implement __clone() method.
    }

    //公共的静态方法类
    public static function TextRevew()
    {
        if (self::$TextReview instanceof Baidu)
        {
            return self::$TextReview;
        }
        else
        {
            return self::$TextReview=new Baidu();
        }
    }

    /**
     * 百度智能云文章审核的接口初始化
     * @param $url
     * @param $param
     * @return bool|string
     */
    function request_post($url = '', $param = '')
    {
        if (empty($url) || empty($param)) {
            return false;
        }

        $postUrl = $url;
        $curlPost = $param;
        // 初始化curl
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $postUrl);
        curl_setopt($curl, CURLOPT_HEADER, 0);
        // 要求结果为字符串且输出到屏幕上
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        // post提交方式
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
        // 运行curl
        $data = curl_exec($curl);
        curl_close($curl);
        return $data;
    }

    /**
     * 文本审核
     * @param $text
     * @return mixed
     */
    public function text($text)
    {
        $Apikey=env('BAIDU_API_KEY');
        $Secretkey=env('BAIDU_SECRET_KEY');
        $token= $this->gettoken($Apikey,$Secretkey);
        $url = 'https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined?access_token=' . $token;
        $bodys=array(
            'text'=>$text
        );

        $res=$this->request_post($url,$bodys);
        $res=json_decode($res,true);
        return $res;
    }

    /**
     * 图像审核
     * @param $image
[     * @return mixed
     */
    public function image($image)
    {
        $Apikey=env('BAIDU_API_KEY');
        $Secretkey=env('BAIDU_SECRET_KEY');
        $token= $this->gettoken($Apikey,$Secretkey);
        $url = 'https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined?access_token=' . $token;
        //图片的本地地址
        $img = file_get_contents($image);
        //dd($img);
        $img = base64_encode($img);
        $bodys=array(
            'image'=>$img
        );

        $res=$this->request_post($url,$bodys);
        $res=json_decode($res,true);
        return $res;
    }

    /**
     * 视频审核
     * @param $video
     * @return mixed
     */
    public function video($name,$video)
    {
        $Apikey=env('BAIDU_API_KEY');
        //dd($Apikey);
        $Secretkey=env('BAIDU_SECRET_KEY');

        $token= $this->gettoken($Apikey,$Secretkey);
        $url ='https://aip.baidubce.com/rest/2.0/solution/v1/video_censor/v2/user_defined?access_token=' . $token;
        $bodys = array(
            'name'=>$name,
            'extId'=>'1',
            'videoUrl' =>$video
        );
        $res=$this->request_post($url,$bodys);
        $res=json_decode($res,true);
        return $res;
    }
    /**
     * 封装token
     * @param $Apikey
     * @param $Secerkey
     * @return mixed
     */
    public function gettoken($Apikey='',$Secretkey='')
    {
        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        $post_data['grant_type'] = 'client_credentials';
        $post_data['client_id'] = $Apikey;
        //dd($post_data['client_id']);
        $post_data['client_secret'] = $Secretkey;
        //dd($post_data['client_secret']);
        $o = "";
        foreach ( $post_data as $k => $v )
        {
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);
        //dd($post_data);
        $res = $this->request_post($url, $post_data);
        //dd($res);
        $res=json_decode($res,true);
        //dd($res);

        return Responses::success($res['access_token'],200,'success');
    }

效果1文字审核

 

 效果二图片审核

效果三短视频审核

短视频审核要注意你提供给他审核的是一个可以将视频下载的连接。这边建议可以使用云存储来存储短视频复制外链来进行短视频的审核

 

 

使用百度审核的优势

自动审核:百度审核利用智能技术,自动识别和审核多种类型的内容,包括图片、文本、语音等,能够快速准确地识别出涉及违法违规信息的内容。


高效快速:百度审核的审核速度非常快,可以在几秒钟内对大量的内容进行审核。这样可以帮助网站和产品的运营人员快速发现和解决问题,提高了工作效率。


准确性高:百度审核使用先进的技术,能够准确地识别出各种违法违规信息,包括色情、暴力、恐怖、广告等问题,有效降低了审核的误判率。


降低成本:使用百度审核可以减少人为的主观判断,避免了因为个人经验和判断不同而导致的判定差异,同时也可以降低公司的审核成本。


提高用户体验和品牌形象:通过使用百度审核,可以快速发现并处理违法违规信息,保障用户的体验和品牌的形象,提高了公司的公信力和市场竞争力。

使用单例模式的优势

节省系统资源:在应用程序运行过程中,如果多个对象需要访问同一个共享资源时,可以使用单例模式来管理这个共享资源。这样可以有效地避免了创建多个相同对象造成的浪费,从而节省系统资源。


简化代码逻辑:如果多个对象需要访问同一个共享资源时,如果不使用单例模式,则需要在应用程序的多个模块中分别创建和管理这个共享资源,这会增加代码的复杂度和难度,降低程序的可维护性。而使用单例模式,可以将共享资源的管理逻辑集中在一个地方,从而简化代码逻辑。


提高程序的性能:如果对于某些需要频繁创建和销毁的对象,使用单例模式可以避免频繁的创建和销毁,从而提高程序的性能。


方便管理共享资源:使用单例模式可以方便地管理共享资源,可以对共享资源进行统一的管理和控制,提高了资源的可用性和安全性。


保证数据的一致性和完整性:如果多个对象需要共享同一个状态信息时,使用单例模式可以避免因状态信息不一致而导致的错误和异常,从而保证了数据的一致性和完整性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值