# 多 API 管理功能测试指南 ## 测试环境 - WordPress 后台 → 外观 → Argon 主题选项 → 文章功能 → AI 文章摘要 - 选择任意 AI 服务商(如 OpenAI) ## 功能特性 ### 1. 多 API 配置管理 - 每个 AI 服务商可以配置多个 API - 每个 API 配置包含:配置名称、API 密钥、API 端点(可选)、模型(可选) - 通过单选框选择当前使用的 API - 支持添加、编辑、删除 API 配置 ### 2. 模型列表刷新 - 每个 API 配置都可以独立刷新模型列表 - 根据配置的 API 密钥和端点动态获取可用模型 - 支持从模型列表中快速选择并应用 ### 3. 向后兼容 - 如果用户之前没有配置多 API,系统会自动从旧配置迁移 - 创建一个名为"默认配置"的 API 并设置为激活状态 ## 测试步骤 ### 步骤 1:添加第一个 API 配置 **操作**: 1. 选择 AI 服务商(如 OpenAI) 2. 点击"添加新 API 配置"按钮 3. 填写配置信息: - 配置名称:主 API - API 密钥:sk-test-key-1 - API 端点:(留空或填写自定义端点) - 模型:(留空或填写模型名称) 4. 点击"刷新"按钮测试获取模型列表 5. 从模型列表中选择一个模型 6. 点击"使用选中的模型"按钮 7. 点击"保存"按钮 **预期结果**: - 表单隐藏 - 显示新添加的 API 配置 - 该 API 自动被选中(单选框勾选) - 显示配置名称、模型、密钥前缀 ### 步骤 2:添加第二个 API 配置 **操作**: 1. 再次点击"添加新 API 配置"按钮 2. 填写配置信息: - 配置名称:备用 API - API 密钥:sk-test-key-2 - API 端点:https://api.custom.com/v1/chat/completions - 模型:gpt-4o 3. 点击"保存"按钮 **预期结果**: - 显示两个 API 配置 - 第一个 API 仍然被选中 - 第二个 API 未被选中 ### 步骤 3:切换激活的 API **操作**: 1. 点击第二个 API 的单选框 **预期结果**: - 第二个 API 被选中 - 第一个 API 取消选中 ### 步骤 4:编辑 API 配置 **操作**: 1. 点击第一个 API 的"编辑"按钮 2. 修改配置名称为"主 API(已更新)" 3. 点击"刷新"按钮重新获取模型列表 4. 选择一个不同的模型 5. 点击"保存"按钮 **预期结果**: - 表单隐藏 - 第一个 API 的名称和模型更新 - 激活状态保持不变(第二个 API 仍然被选中) ### 步骤 5:尝试删除激活的 API **操作**: 1. 点击第二个 API(当前激活)的"删除"按钮 **预期结果**: - 弹出错误提示:"无法删除当前正在使用的 API 配置,请先切换到其他 API" - API 未被删除 ### 步骤 6:删除非激活的 API **操作**: 1. 点击第一个 API(未激活)的"删除"按钮 2. 在确认对话框中点击"确定" **预期结果**: - 第一个 API 被删除 - 只剩下第二个 API - 第二个 API 仍然被选中 ### 步骤 7:测试模型刷新功能 **操作**: 1. 点击"添加新 API 配置" 2. 填写 API 密钥 3. 点击"刷新"按钮 **预期结果**: - 按钮显示加载状态(图标旋转) - 显示"加载中..."提示 - 成功后显示可用模型列表 - 可以选择模型并应用到输入框 ### 步骤 8:保存设置 **操作**: 1. 滚动到页面底部 2. 点击"保存更改"按钮 **预期结果**: - 显示"设置已保存"提示 - 刷新页面后,配置仍然存在 - 激活的 API 保持选中状态 ### 步骤 9:测试 AI 摘要生成 **操作**: 1. 前往任意文章页面 2. 查看是否显示 AI 摘要 **预期结果**: - 使用当前激活的 API 配置生成摘要 - 摘要正常显示 ## 边界情况测试 ### 测试 1:空配置名称 - 不填写配置名称,直接点击保存 - 预期:弹出提示"请输入配置名称" ### 测试 2:空 API 密钥 - 只填写配置名称,不填写 API 密钥 - 预期:弹出提示"请输入 API 密钥" ### 测试 3:刷新模型时未填写密钥 - 不填写 API 密钥,直接点击刷新 - 预期:弹出提示"请先输入 API 密钥" ### 测试 4:删除最后一个 API - 当只剩一个 API 时,尝试删除 - 预期:如果是激活的,无法删除;如果不是激活的,可以删除 ### 测试 5:切换服务商 - 切换到不同的 AI 服务商(如 DeepSeek) - 预期:显示该服务商的 API 配置列表 ### 测试 6:向后兼容性测试 - 如果之前有旧的单 API 配置 - 预期:自动迁移为"默认配置"并设置为激活 ## 功能验证清单 - [ ] 添加第一个 API 配置 - [ ] 添加第二个 API 配置 - [ ] 切换激活的 API - [ ] 编辑 API 配置 - [ ] 尝试删除激活的 API(应失败) - [ ] 删除非激活的 API - [ ] 刷新模型列表 - [ ] 从模型列表选择并应用模型 - [ ] 保存设置并刷新页面 - [ ] 验证数据持久化 - [ ] 测试空配置名称 - [ ] 测试空 API 密钥 - [ ] 测试切换服务商 - [ ] 测试 AI 摘要生成功能 - [ ] 测试向后兼容性 ## 已知问题 无 ## 修复记录 ### 2026-01-26 - 修复删除功能:添加激活状态检查,防止删除当前使用的 API - 修复保存逻辑:编辑时正确保留激活状态 - 优化体验:添加第一个 API 时自动设置为激活 - 添加模型刷新功能:支持动态获取可用模型列表 - 修复配置获取的错误处理:防止空配置导致 Fatal Error - 改进向后兼容性:自动迁移旧配置到新格式 ## 使用场景 ### 场景 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:生产环境配置 - 方便切换测试