feat: 实现场景化 API 配置支持(第一阶段)

- 修改 argon_ai_query() 函数,优先使用场景化的 API 配置
- 支持根据场景(summary/spam)自动选择对应的活动 API
- 保持向后兼容,如果新系统没有配置则回退到旧系统
- 实现分阶段重构方案的第一阶段:后端使用新系统,前端保持旧 UI
This commit is contained in:
2026-01-26 13:28:25 +08:00
parent 2c25caae23
commit 2e6179a5dd

View File

@@ -6487,9 +6487,27 @@ function argon_log_ai_query($provider, $model, $scenario, $prompt_length, $conte
* @return string|false 返回 AI 响应内容或 false * @return string|false 返回 AI 响应内容或 false
*/ */
function argon_ai_query($scenario, $prompt, $content, $context = []) { function argon_ai_query($scenario, $prompt, $content, $context = []) {
// 获取服务商配置 // 优先使用场景化的 API 配置(新系统)
$provider = isset($context['provider']) ? $context['provider'] : get_option('argon_ai_summary_provider', 'openai'); $config = null;
$provider = '';
// 如果 context 中指定了 provider使用指定的 provider
if (isset($context['provider'])) {
$provider = $context['provider'];
$config = argon_get_ai_provider_config($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'])) { if (!$config || !isset($config['api_key'])) {
error_log("Argon AI Query Error: Provider config not found for {$provider}"); error_log("Argon AI Query Error: Provider config not found for {$provider}");