From 2e6179a5ddac0f3f940abd79bf4c6378800d5dcb Mon Sep 17 00:00:00 2001 From: nanhaoluo <3075912108@qq.com> Date: Mon, 26 Jan 2026 13:28:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E5=8C=96=20API=20=E9=85=8D=E7=BD=AE=E6=94=AF=E6=8C=81=EF=BC=88?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E9=98=B6=E6=AE=B5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 argon_ai_query() 函数,优先使用场景化的 API 配置 - 支持根据场景(summary/spam)自动选择对应的活动 API - 保持向后兼容,如果新系统没有配置则回退到旧系统 - 实现分阶段重构方案的第一阶段:后端使用新系统,前端保持旧 UI --- functions.php | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/functions.php b/functions.php index 94530f0..05ff436 100644 --- a/functions.php +++ b/functions.php @@ -6487,9 +6487,27 @@ function argon_log_ai_query($provider, $model, $scenario, $prompt_length, $conte * @return string|false 返回 AI 响应内容或 false */ function argon_ai_query($scenario, $prompt, $content, $context = []) { - // 获取服务商配置 - $provider = isset($context['provider']) ? $context['provider'] : get_option('argon_ai_summary_provider', 'openai'); - $config = argon_get_ai_provider_config($provider); + // 优先使用场景化的 API 配置(新系统) + $config = null; + $provider = ''; + + // 如果 context 中指定了 provider,使用指定的 provider + if (isset($context['provider'])) { + $provider = $context['provider']; + $config = argon_get_ai_provider_config($provider); + } else { + // 否则根据场景获取活动的 API 配置 + $config = argon_get_active_api_config($scenario); + if ($config && isset($config['provider'])) { + $provider = $config['provider']; + } + } + + // 如果新系统没有配置,回退到旧系统 + if (!$config || !isset($config['api_key'])) { + $provider = get_option('argon_ai_summary_provider', 'openai'); + $config = argon_get_ai_provider_config($provider); + } if (!$config || !isset($config['api_key'])) { error_log("Argon AI Query Error: Provider config not found for {$provider}");