From 2180998e81472bf1f16f0f56e27648e58116040e Mon Sep 17 00:00:00 2001 From: kuaifan Date: Tue, 20 Jan 2026 09:31:34 +0000 Subject: [PATCH] =?UTF-8?q?feat(ai-assistant):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E5=8F=91=E9=80=81=E5=8A=9F=E8=83=BD=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E6=A8=A1=E6=80=81=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 支持上传图片并压缩(当前消息 1024px,历史 512px) - 图片独立缓存存储,使用占位符 [IMG:xxx] 替代 base64 - 新增 prompt-image.vue 组件展示历史图片缩略图 - 后端 AI.php 支持多模态消息格式处理 - 添加图片缓存清理机制(删除会话时同步清理) - 优化 parsePromptContent 避免重复调用 - 会话标题自动过滤图片占位符 Co-Authored-By: Claude Opus 4.5 --- app/Module/AI.php | 27 +- .../js/components/AIAssistant/index.vue | 550 +++++++++++++++++- .../components/AIAssistant/prompt-image.vue | 89 +++ 3 files changed, 636 insertions(+), 30 deletions(-) create mode 100644 resources/assets/js/components/AIAssistant/prompt-image.vue diff --git a/app/Module/AI.php b/app/Module/AI.php index bac4c29f1..8424e6afc 100644 --- a/app/Module/AI.php +++ b/app/Module/AI.php @@ -166,14 +166,29 @@ class AI continue; } $role = trim((string)($item[0] ?? '')); - $message = trim((string)($item[1] ?? '')); - if ($role === '' || $message === '') { + $message = $item[1] ?? ''; + + // 跳过空消息 + if (empty($message)) { continue; } - // 替换系统条件性提示块占位符 - if (str_contains($message, '{{SYSTEM_OPTIONAL_PROMPTS}}')) { - $optionalPrompts = PromptPlaceholder::buildOptionalPrompts(User::userid()); - $message = str_replace('{{SYSTEM_OPTIONAL_PROMPTS}}', $optionalPrompts, $message); + + // 处理纯文本(字符串) + if (!is_array($message)) { + // 纯文本 + $message = trim((string)$message); + if ($role === '' || $message === '') { + continue; + } + // 替换系统条件性提示块占位符 + if (str_contains($message, '{{SYSTEM_OPTIONAL_PROMPTS}}')) { + $optionalPrompts = PromptPlaceholder::buildOptionalPrompts(User::userid()); + $message = str_replace('{{SYSTEM_OPTIONAL_PROMPTS}}', $optionalPrompts, $message); + } + } + + if ($role === '') { + continue; } $context[] = [$role, $message]; } diff --git a/resources/assets/js/components/AIAssistant/index.vue b/resources/assets/js/components/AIAssistant/index.vue index 9ed9d88b3..77ec8e741 100644 --- a/resources/assets/js/components/AIAssistant/index.vue +++ b/resources/assets/js/components/AIAssistant/index.vue @@ -97,13 +97,26 @@ - -
- {{ response.prompt }} - - - -
+ +
+ +
+
+ preview +
+ +
+
+
+ +