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
|
* @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;
|
||||||
$config = argon_get_ai_provider_config($provider);
|
$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'])) {
|
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}");
|
||||||
|
|||||||
Reference in New Issue
Block a user