From e5694d9d447ceb8247e90ca450aee0007cf5f632 Mon Sep 17 00:00:00 2001 From: wong <106998207@qq.com> Date: Fri, 25 Jul 2025 14:49:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=BA=93ai=E6=94=B9=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ContentLibraryController.php | 76 ++++++++++++++++--- .../application/job/WorkbenchMomentsJob.php | 2 +- 2 files changed, 67 insertions(+), 11 deletions(-) diff --git a/Server/application/cunkebao/controller/ContentLibraryController.php b/Server/application/cunkebao/controller/ContentLibraryController.php index 9f4508b6..86cbf7de 100644 --- a/Server/application/cunkebao/controller/ContentLibraryController.php +++ b/Server/application/cunkebao/controller/ContentLibraryController.php @@ -993,7 +993,17 @@ class ContentLibraryController extends Controller if ($excludeMatch) { continue; } - + + // 如果启用了AI处理 + if (!empty($library['aiEnabled']) && !empty($content)) { + $contentAi = $this->aiRewrite($library,$content); + if (!empty($content)){ + $moment['contentAi'] = $contentAi; + }else{ + $moment['contentAi'] = ''; + } + } + // 保存到内容库的content_item表 $this->saveMomentToContentItem($moment, $library['id'], $friend, $nickname); @@ -1012,10 +1022,7 @@ class ContentLibraryController extends Controller } } - // 如果启用了AI处理 - if ($library['aiEnabled'] == 1 && !empty($library['aiPrompt']) && $totalMomentsCount > 0) { - // 此处实现AI处理逻辑,暂未实现 - } + if (empty($collectedData)) { return [ @@ -1174,6 +1181,18 @@ class ContentLibraryController extends Controller continue; } + + // 如果启用了AI处理 + if (!empty($library['aiEnabled']) && !empty($content)) { + $contentAi = $this->aiRewrite($library,$content); + if (!empty($content)){ + $moment['contentAi'] = $contentAi; + }else{ + $moment['contentAi'] = ''; + } + } + + // 保存消息到内容库 $this->saveMessageToContentItem($message, $library['id'], $groupInfo); @@ -1202,11 +1221,6 @@ class ContentLibraryController extends Controller } } - // 如果启用了AI处理 - if ($library['aiEnabled'] == 1 && !empty($library['aiPrompt']) && $totalMessagesCount > 0) { - // 此处实现AI处理逻辑,暂未实现 - } - if (empty($collectedData)) { return [ 'status' => 'warning', @@ -1480,6 +1494,7 @@ class ContentLibraryController extends Controller $item->friendId = $friend['id']; $item->createMomentTime = $moment['createTime'] ?? 0; $item->content = $moment['content'] ?? ''; + $item->contentAi = $moment['contentAi'] ?? ''; $item->coverImage = $coverImage; $item->contentType = $contentType; // 设置内容类型 @@ -1932,6 +1947,47 @@ class ContentLibraryController extends Controller } + public function aiRewrite($library = [],$content = '') + { + if (empty($library['aiEnabled']) && empty($content)){ + return false; + } + // 此处实现AI处理逻辑,暂未实现 + $utl = Env::get('doubaoAi.api_url', ''); + $apiKey = Env::get('doubaoAi.api_key', ''); + $model = Env::get('doubaoAi.model', 'doubao-1-5-pro-32k-250115'); + if (empty($apiKey)){ + return false; + } + if (!empty($library['aiPrompt'])) { + $aiPrompt = $library['aiPrompt']; + }else{ + $aiPrompt = '重写这条朋友圈 要求: +1、原本的字数和意思不要修改超过10% +2、出现品牌名或个人名字就去除'; + } + + $content = $aiPrompt .' ' . $content; + $headerData = ['Authorization:Bearer ' . $apiKey]; + $header = setHeader($headerData); + + // 发送请求 + $params = [ + 'model' => $model, + 'messages' => [ + ['role' => 'system','content' => '你是人工智能助手.'], + ['role' => 'user','content' => $content], + ] + ]; + $result = requestCurl($utl, $params, 'POST', $header,'json'); + $result = json_decode($result,true); + if (!empty($result['choices'])){ + $contentAI = $result['choices'][0]['message']['content']; + return $contentAI; + }else{ + return false; + } + } } \ No newline at end of file diff --git a/Server/application/job/WorkbenchMomentsJob.php b/Server/application/job/WorkbenchMomentsJob.php index 41ed4701..d1d74e06 100644 --- a/Server/application/job/WorkbenchMomentsJob.php +++ b/Server/application/job/WorkbenchMomentsJob.php @@ -173,7 +173,7 @@ class WorkbenchMomentsJob 'poiAddress' => '', 'poiName' => '', 'publicMode' => '', - 'text' => $contentLibrary['content'], + 'text' => !empty($contentLibrary['contentAi']) ? $contentLibrary['contentAi'] : $contentLibrary['content'], 'timingTime' => date('Y-m-d H:i:s', $sendTime), 'beginTime' => date('Y-m-d H:i:s', $sendTime), 'endTime' => date('Y-m-d H:i:s', $sendTime + 600),