|
...
|
...
|
@@ -15,6 +15,7 @@ use App\Services\ProjectServer; |
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
use Illuminate\Support\Facades\Redis;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 初始化项目
|
|
...
|
...
|
@@ -149,7 +150,7 @@ class UpdateSeoTdk extends Command |
|
|
|
echo date('Y-m-d H:i:s') . 'line: '. $e->getLine() .' error: ' . $project_id . '->' . $e->getMessage() . PHP_EOL;
|
|
|
|
ProjectUpdateTdk::retry($task->id, $e->getMessage());
|
|
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s') . ' end: ' . $project_id . PHP_EOL;
|
|
|
|
echo date('Y-m-d H:i:s') . ' end project_id: ' . $project_id . PHP_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -162,18 +163,25 @@ class UpdateSeoTdk extends Command |
|
|
|
$ai_commands = Arr::setValueToKey($ai_commands, 'key');
|
|
|
|
foreach ($this->maps as $table => $map) {
|
|
|
|
$update[$table] = ['total_page'=>0, 'title'=>0, 'keyword'=>0, 'des'=>0];
|
|
|
|
echo date('Y-m-d H:i:s') . '更新--' . $table . ': 项目id' . $project_id . PHP_EOL . json_encode($update[$table]);
|
|
|
|
echo date('Y-m-d H:i:s') . '更新--' . $table . ': 项目id' . $project_id . PHP_EOL;
|
|
|
|
$list = DB::connection('custom_mysql')->table($table)->get();
|
|
|
|
if (!empty($list)) {
|
|
|
|
$list = $list->toArray();
|
|
|
|
foreach ($list as $v) {
|
|
|
|
echo '打印数据:'.date('Y-m-d H:i:s') . $update[$table]['total_page'].PHP_EOL;
|
|
|
|
$update[$table]['total_page']++;
|
|
|
|
$v = (array)$v;
|
|
|
|
echo date('Y-m-d H:i:s') . '更新--' . $table . ':id' . $v['id'] . PHP_EOL;
|
|
|
|
|
|
|
|
//缓存 在处理的项目数据 id
|
|
|
|
$cache_key = "seo_tdk_{$project_id}_{$table}_{$v['id']}";
|
|
|
|
if(!Redis::setnx($cache_key, 1)){
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
Redis::expire($cache_key, 120);
|
|
|
|
|
|
|
|
echo date('Y-m-d H:i:s') . '更新--' . $table . ': 项目id' . $project_id . ':id' . $v['id'] . PHP_EOL;
|
|
|
|
|
|
|
|
$data = [];
|
|
|
|
$json_field = '';
|
|
|
|
echo date('Y-m-d H:i:s') . json_encode($map) . PHP_EOL;
|
|
|
|
foreach ($map as $ai_key => $field) {
|
|
|
|
$field_arr = explode('.', $field);
|
|
|
|
if (count($field_arr) > 1) {
|
|
...
|
...
|
@@ -188,14 +196,6 @@ class UpdateSeoTdk extends Command |
|
|
|
continue;
|
|
|
|
}
|
|
|
|
|
|
|
|
//缓存 在处理的 项目 数据 id
|
|
|
|
$cache_key = "seo_tdk_{$project_id}_{$table}_{$v['id']}";
|
|
|
|
if(Cache::get($cache_key)){
|
|
|
|
echo '其他进程在处理' . PHP_EOL;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
Cache::put($cache_key, 1, 120);
|
|
|
|
|
|
|
|
//AI生成
|
|
|
|
if (!empty($ai_commands[$ai_key]['ai'])) {
|
|
|
|
$prompt = $this->getPrompt($project_id, $ai_commands[$ai_key]['ai'], $table, $v);
|
|
...
|
...
|
@@ -307,8 +307,6 @@ class UpdateSeoTdk extends Command |
|
|
|
}
|
|
|
|
$prompt .= '.Please answer in ' . ($lang ?: 'English');
|
|
|
|
|
|
|
|
echo $prompt . PHP_EOL;
|
|
|
|
|
|
|
|
return $prompt;
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -375,7 +373,6 @@ class UpdateSeoTdk extends Command |
|
|
|
public function ai_send($prompt)
|
|
|
|
{
|
|
|
|
$text = Gpt::instance()->openai_chat_qqs($prompt);
|
|
|
|
echo 'GPT result:' . $text . PHP_EOL;
|
|
|
|
$text = Common::deal_keywords($text);
|
|
|
|
return Common::deal_str($text);
|
|
|
|
}
|
...
|
...
|
|