Files
argon-theme/.kiro/steering/multi-api-management.md
nanhaoluo c37e8da986 feat: 完成统一 AI 查询组件的集成
- 更新 argon_detect_spam_comment_sync() 使用统一接口
- 更新 argon_extract_keywords_from_comment() 使用统一接口
- 删除旧的 argon_call_ai_api_for_spam_detection() 函数
- 删除旧的 argon_call_ai_for_keyword_extraction() 函数
- 所有 AI 查询现在都通过 argon_ai_query() 统一接口
- 所有查询都会记录到 wp_argon_ai_query_log 数据表
- 支持按场景统计(summary/spam_detection/keyword_extraction)
2026-01-26 12:49:49 +08:00

4.3 KiB
Raw Blame History

多 API 管理功能设计

功能概述

为每个 AI 服务商支持配置多个 API用户可以

  • 为同一服务商添加多个 API 配置(不同的 Key、端点、模型
  • 选择其中一个作为当前使用的 API
  • 方便实现负载均衡、备用切换、不同场景使用不同配置等需求

数据结构

配置存储格式

// 存储在 WordPress options 中
// 键名argon_ai_{provider}_apis
// 值JSON 数组
[
    {
        "id": "api_1",
        "name": "主 API",
        "api_key": "sk-xxx",
        "api_endpoint": "",
        "model": "gpt-4o-mini",
        "is_active": true
    },
    {
        "id": "api_2", 
        "name": "备用 API",
        "api_key": "sk-yyy",
        "api_endpoint": "https://api.custom.com/v1/chat/completions",
        "model": "gpt-4o",
        "is_active": false
    }
]

当前使用的 API ID

// 键名argon_ai_{provider}_active_api
// 值字符串API 的 ID
"api_1"

界面设计

设置页布局

AI 服务商: [OpenAI ▼]

┌─ OpenAI 配置 ─────────────────────────────┐
│                                            │
│ 已配置的 API:                              │
│ ○ 主 API (gpt-4o-mini)        [编辑] [删除]│
│ ● 备用 API (gpt-4o)           [编辑] [删除]│
│                                            │
│ [+ 添加新 API 配置]                        │
│                                            │
└────────────────────────────────────────────┘

添加/编辑 API 配置:
┌────────────────────────────────────────────┐
│ 配置名称: [主 API_______________]          │
│ API 密钥: [sk-xxx______________] [显示]    │
│ API 端点: [___________________] (可选)     │
│ 模型:     [gpt-4o-mini_________] [刷新]    │
│                                            │
│ [保存] [取消]                              │
└────────────────────────────────────────────┘

实现步骤

1. 数据层

  • argon_get_provider_apis($provider) - 获取提供商的所有 API 配置
  • argon_get_active_api($provider) - 获取当前使用的 API 配置
  • argon_add_provider_api($provider, $config) - 添加 API 配置
  • argon_update_provider_api($provider, $api_id, $config) - 更新 API 配置
  • argon_delete_provider_api($provider, $api_id) - 删除 API 配置
  • argon_set_active_api($provider, $api_id) - 设置当前使用的 API

2. 界面层

  • 为每个提供商显示 API 列表
  • 添加/编辑表单(可折叠)
  • 单选框选择当前使用的 API
  • AJAX 操作(添加、编辑、删除、切换)

3. 调用层

  • 更新 argon_get_ai_provider_config() 函数
  • 从多个 API 中获取当前激活的配置
  • 保持向后兼容(如果没有配置多 API使用原有逻辑

使用场景

场景 1负载均衡

  • 配置多个 OpenAI API Key
  • 手动或自动切换使用不同的 Key
  • 避免单个 Key 达到速率限制

场景 2备用切换

  • 主 API 配置官方端点
  • 备用 API 配置代理端点
  • 主 API 失败时手动切换到备用

场景 3不同场景使用不同配置

  • API 1使用 gpt-4o-mini快速、便宜用于评论检测
  • API 2使用 gpt-4o准确、贵用于文章摘要
  • 根据使用场景选择不同的 API

场景 4测试与生产分离

  • API 1测试环境配置
  • API 2生产环境配置
  • 方便切换测试

向后兼容

如果用户已有旧配置(单 API 模式):

  1. 自动迁移到新格式
  2. 创建一个名为"默认配置"的 API
  3. 设置为当前使用

未来扩展

自动切换(可选)

  • 检测 API 调用失败
  • 自动切换到下一个可用的 API
  • 记录切换日志

负载均衡(可选)

  • 轮询模式:依次使用不同的 API
  • 随机模式:随机选择一个 API
  • 权重模式:根据权重分配使用频率

健康检查(可选)

  • 定期检测 API 可用性
  • 标记不可用的 API
  • 自动禁用失败的 API