feat: 实现场景化 API 配置支持(第一阶段)
- 修改 argon_ai_query() 函数,优先使用场景化的 API 配置 - 支持根据场景(summary/spam)自动选择对应的活动 API - 保持向后兼容,如果新系统没有配置则回退到旧系统 - 实现分阶段重构方案的第一阶段:后端使用新系统,前端保持旧 UI
This commit is contained in:
@@ -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');
|
||||
// 优先使用场景化的 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}");
|
||||
|
||||
Reference in New Issue
Block a user