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

137 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 多 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