feat: 新增 AI 提示词占位符与用户上下文注入

- 新增 PromptPlaceholder 模块,负责构建用户上下文和条件性提示块
  - 用户上下文包含:基础信息、部门、同事印象、场景角色、任务列表
  - 前端使用 {{SYSTEM_OPTIONAL_PROMPTS}} 占位符,后端统一替换为实际内容
  - 重构 BotReceiveMsgTask 和 ai.js,复用 PromptPlaceholder 逻辑
  - 任务列表支持智能排序:逾期优先 → 最近活跃 → 负责人优先
This commit is contained in:
kuaifan
2026-01-14 16:34:39 +08:00
parent 792989a504
commit 3a2b7b1400
5 changed files with 317 additions and 32 deletions

View File

@@ -3,6 +3,7 @@
namespace App\Module;
use App\Models\Setting;
use App\Models\User;
use Cache;
use Carbon\Carbon;
@@ -169,6 +170,11 @@ class AI
if ($role === '' || $message === '') {
continue;
}
// 替换系统条件性提示块占位符
if (str_contains($message, '{{SYSTEM_OPTIONAL_PROMPTS}}')) {
$optionalPrompts = PromptPlaceholder::buildOptionalPrompts(User::userid());
$message = str_replace('{{SYSTEM_OPTIONAL_PROMPTS}}', $optionalPrompts, $message);
}
$context[] = [$role, $message];
}