|
...
|
...
|
@@ -8,9 +8,15 @@ |
|
|
|
|
|
|
|
namespace App\Console\Commands\Inquiry;
|
|
|
|
|
|
|
|
use App\Helper\Arr;
|
|
|
|
use App\Helper\Common;
|
|
|
|
use App\Helper\Gpt;
|
|
|
|
use App\Helper\Translate;
|
|
|
|
use App\Helper\Validate;
|
|
|
|
use App\Http\Logic\Aside\Optimize\InquiryForwardLogic;
|
|
|
|
use App\Models\Ai\AiCommand;
|
|
|
|
use App\Models\Inquiry\InquiryInfo;
|
|
|
|
use App\Models\Inquiry\InquiryRelayAi;
|
|
|
|
use App\Models\Project\InquiryFilterConfig;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Services\InquiryRelayService;
|
|
...
|
...
|
@@ -221,7 +227,59 @@ class SyncInquiryRelay extends Command |
|
|
|
$remark = $this->inquiryFilter($unique_sign, $country, $data['ip'], $data['message'], $data['refer'], $data['email'], $data['phone'], $data['name']);
|
|
|
|
$status = $remark ? InquiryInfo::STATUS_INVALID : InquiryInfo::STATUS_INIT;
|
|
|
|
|
|
|
|
$model->createInquiry($data['name'], $data['phone'], $data['email'], $data['ip'], $country, $data['message'], $message_cn, $type, $data['time'], $data['refer'], $data['title'], $keywords, $message_sign, $data['origin_key'], $data['image'], $email_status, $phone_status, $unique_sign, $status, $remark);
|
|
|
|
$form_id = $model->createInquiry($data['name'], $data['phone'], $data['email'], $data['ip'], $country, $data['message'], $message_cn, $type, $data['time'], $data['refer'], $data['title'], $keywords, $message_sign, $data['origin_key'], $data['image'], $email_status, $phone_status, $unique_sign, $status, $remark);
|
|
|
|
|
|
|
|
if ($form_id && $status == InquiryInfo::STATUS_INIT) {
|
|
|
|
$inquiry_ai_info = InquiryRelayAi::where('form_id', $form_id)->first();
|
|
|
|
if (!$inquiry_ai_info) {
|
|
|
|
//AI匹配询盘关键词
|
|
|
|
$ai_info = AiCommand::select(['ai'])->where('key', 'inquiry_keyword_extract')->first();
|
|
|
|
if (!$ai_info) {
|
|
|
|
$this->output('AI重写指令[inquiry_keyword_extract]未配置');
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$ai_command = $ai_info['ai'];
|
|
|
|
$ai_command = str_replace('{title}', $data['title'], $ai_command);
|
|
|
|
$ai_command = str_replace('{keywords}', $keywords, $ai_command);
|
|
|
|
$ai_command = str_replace('{content}', $data['message'], $ai_command);
|
|
|
|
$ai_keyword = Common::deal_str(Gpt::instance()->openai_chat_qqs($ai_command));
|
|
|
|
if (!$ai_keyword) {
|
|
|
|
$this->output('询盘ID:' . $form_id . ',AI提取询盘关键词失败');
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
//关键词查询项目着陆页
|
|
|
|
$inquiryForwardLogic = new InquiryForwardLogic();
|
|
|
|
$forward_list = $inquiryForwardLogic->searchKeywords($ai_keyword, 2, 3);
|
|
|
|
if (empty($forward_list)) {
|
|
|
|
$this->output('询盘ID:' . $form_id . ',根据关键词[' . $ai_keyword . ']查询项目着陆页为空');
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
//重写询盘内容
|
|
|
|
$ai_message_list = [];
|
|
|
|
for ($i = 0; $i < count($forward_list); $i++) {
|
|
|
|
$message_re = $inquiryForwardLogic->aiRewrite($data['message']);
|
|
|
|
if (isset($message_re['ai_message']) && $message_re['ai_message']) {
|
|
|
|
$ai_message_list[] = $message_re['ai_message'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (empty($ai_message_list)) {
|
|
|
|
$this->output('询盘ID:' . $form_id . ',AI重写询盘内容失败');
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$inquiry_ai_info = new InquiryRelayAi();
|
|
|
|
$inquiry_ai_info->form_id = $form_id;
|
|
|
|
$inquiry_ai_info->keywords = $ai_keyword;
|
|
|
|
$inquiry_ai_info->forward_url = Arr::a2s($forward_list);
|
|
|
|
$inquiry_ai_info->message_ai = Arr::a2s($ai_message_list);
|
|
|
|
$inquiry_ai_info->save();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
...
|
...
|
|