diff --git a/app/Services/AiChatService.php b/app/Services/AiChatService.php index 34ada79..1256303 100644 --- a/app/Services/AiChatService.php +++ b/app/Services/AiChatService.php @@ -17,6 +17,7 @@ namespace App\Services; use App\Models\AiProviderConfig; use App\Models\AiUsageLog; +use App\Models\Sysparam; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Redis; @@ -44,9 +45,22 @@ class AiChatService private const CONTEXT_TTL = 3600; /** - * 系统提示词(机器人人设) + * 系统提示词(机器人人设并动态加载各项最新配置) */ - private const SYSTEM_PROMPT = <<<'PROMPT' + private function getSystemPrompt(): string + { + $expPerHb = Sysparam::getValue('exp_per_heartbeat', '1'); + $jjbPerHb = Sysparam::getValue('jjb_per_heartbeat', '1'); + $charmCross = Sysparam::getValue('charm_cross_sex', '2'); + $charmSame = Sysparam::getValue('charm_same_sex', '1'); + $charmLimit = Sysparam::getValue('charm_hourly_limit', '20'); + + $levelWarn = Sysparam::getValue('level_warn', '5'); + $levelMute = Sysparam::getValue('level_mute', '8'); + $levelKick = Sysparam::getValue('level_kick', '10'); + $levelFreeze = Sysparam::getValue('level_freeze', '14'); + + return << 'system', 'content' => self::SYSTEM_PROMPT]], + [['role' => 'system', 'content' => $this->getSystemPrompt()]], $context );