# 多 API 管理功能设计 ## 功能概述 为每个 AI 服务商支持配置多个 API,用户可以: - 为同一服务商添加多个 API 配置(不同的 Key、端点、模型) - 选择其中一个作为当前使用的 API - 方便实现负载均衡、备用切换、不同场景使用不同配置等需求 ## 数据结构 ### 配置存储格式 ```php // 存储在 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 ```php // 键名: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