From 81e706dce9c4598ec007d21012c8a43d12611109 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Sat, 14 Oct 2023 16:50:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=98=9F=E7=81=AB=E8=AE=A4?= =?UTF-8?q?=E7=9F=A5=E6=A8=A1=E5=9E=8B=E5=88=86=E6=9E=90=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/job/AiAianalyse.php | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 app/job/AiAianalyse.php diff --git a/app/job/AiAianalyse.php b/app/job/AiAianalyse.php new file mode 100644 index 000000000..fa084f417 --- /dev/null +++ b/app/job/AiAianalyse.php @@ -0,0 +1,91 @@ +attempts() > 3) { + //通过这个方法可以检查这个任务已经重试了几次了 + } + $type_name = Db::name('category_business')->where('id', $data['category_child'])->value('name'); + $data_field = json_decode($data['data_field'], true); + $demand = ''; + foreach($data_field as $k=>$v) { + $demand .= $k . ':' . $v . ';'; + } + $question = "分析以下{$type_name}信息【{$demand}】请问有那些商机?"; + try { + $chat=new ChatClient($this->app_id,$this->api_key,$this->api_secret); + $client = new Client($chat->assembleAuthUrl('wss://spark-api.xf-yun.com/v2.1/chat')); + // 连接到 WebSocket 服务器 + if ($client) { + $header = [ + "app_id" => $this->app_id, + "uid" => "1" + ]; + $parameter = [ + "chat" => [ + "domain" => "generalv2", + "temperature" => 0.5, + "max_tokens" => 1024 + ] + ]; + $payload = [ + "message" => [ + "text" => [ + ["role" => "user", "content" => $question] + ] + ] + ]; + $data = json_encode([ + "header" => $header, + "parameter" => $parameter, + "payload" => $payload + ]); + + $client->send($data); + $answer = ''; + while(true){ + $response = $client->receive(); + $resp = json_decode($response, true); + $code = $resp["header"]["code"] ?? 0; + if($code == 0){ + $status = $resp["header"]["status"]; + $content = $resp['payload']['choices']['text'][0]['content'] ?? ''; + $answer .= $content; + if($status == 2){ + break; + } + }else{ + break; + } + } + $update_data = [ + 'ai_aianalyse' => $answer, + 'update_time' => time(), + ]; + Db::name('user_informationg_demand')->where($data)->update($update_data); + } + } catch (\Exception $e) {} + $job->delete(); + } +}