AiCommandController.php 3.2 KB
<?php

namespace App\Http\Controllers\Bside\Ai;

use App\Enums\Common\Code;
use App\Helper\Common;
use App\Helper\Translate;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Controllers\Bside\:写入日志;
use App\Models\Ai\AiLog;

class AiCommandController extends BaseController
{
    //获取文本内容
    public $chat_url = 'v2/openai_chat_qqs';
    /**
     * @name :ai生成
     * @author :liyuhang
     * @method
     */
    public function ai_http_post(){
        $this->request->validate([
            'keywords'=>['required'],
            'key'=>['required']
        ],[
            'keywords.required' => '关键字不能为空',
            'key.required' => '场景不能为空',
        ]);
        #TODO 通过key获取到ai指令对象
        $data = Common::send_openai_msg($this->chat_url,$this->param);
        $param = [
            'key'=>$this->param['key'],
            'keywords'=>$this->param['keywords'],
            'remark'=>json_encode($data)
        ];
        $this->set_ai_log($param);
        $this->response('success',Code::SUCCESS,$data);
    }

    /**
     * @name :写入日志
     * @author :liyuhang
     * @method
     */
    public function set_ai_log($data){
        //写入日志
        $param = [
            'key'=> $this->param['key'],
            'keywords'=>$this->param['keywords'],
            'remark' =>$data['remark'],
            'operator_id'=>$this->uid
        ];
        $aiLog = new AiLog();
        return $aiLog->add($param);
    }

    //处理关键词
    public function deal_keywords($data){
        $str = ['1. ','2. ','3. ','4. ','5. ','6. ','7. ','8. ','1) ','2) ','3) ','4) ','5) ','6) ','7) ','7) ','8) '];
        $ar_keywords_t = explode("\n",$data);
        $ar_keywords = [];
        foreach ($ar_keywords_t as $v){
            if(trim($v)){
                $keyword = trim($v);
                if(strpos($keyword,'search keyword') !== false){
                    $tmp_first = explode('1. ',$keyword);
                    if(count($tmp_first) > 1){
                        $keyword = $tmp_first[1];
                    }else{
                        $tmp_first = explode('1) ',$keyword);
                        if(count($tmp_first) > 1){
                            $keyword = $tmp_first[1];
                        }
                    }
                }
                $keyword = str_replace($str,'',$keyword);
                $keyword = trim($keyword,'.');
                if(strpos(strtolower($keyword),'hope') === false && strpos(strtolower($keyword),'remember') === false && strpos(strtolower($keyword),'help') === false && strpos(strtolower($keyword),'website') === false && strpos(strtolower($keyword),'search keywords') === false && strpos(strtolower($keyword),'here are 8') === false && strpos(strtolower($keyword),'search keywords') === false && strpos(strtolower($keyword),'thank you') === false && strpos(strtolower($keyword),'thanks') === false && strpos(strtolower($keyword),'copywriter') === false ){
                    $ar_keywords[] = $keyword;
                }
            }
        }
        return implode(',',$ar_keywords);
    }


//过滤特殊字符
    public function deal_str($str){
        return str_replace(['{','}','”','“','"'],'',$str);
    }
}