# AI 设置页面重构方案 ## 重构目标 将当前按提供商分组的 API 管理方式改为统一的 API 列表管理,并重新组织 AI 功能的设置结构。 ## 当前结构问题 1. **API 管理分散**:每个提供商独立管理 API,用户需要在 10 个提供商之间切换 2. **结构不清晰**:AI 摘要和评论审核分散在不同的一级分类中 3. **用户体验差**:添加 API 时需要先选择提供商,然后才能配置 ## 新结构设计 ### 页面结构 ``` AI 功能 (独立 h1,不在分类编号中) ├── API 管理 (h2) │ ├── 已配置的 API 列表(统一显示所有提供商的 API) │ └── 添加新 API(输入密钥 → 选择提供商 → 选择模型) ├── 文章摘要 (h2) │ ├── 启用 AI 摘要 │ ├── 默认服务商选择 │ ├── Prompt 设置 │ └── 排除文章设置 └── 评论审核 (h2) ├── 启用 AI 识别 ├── 实时检测模式 ├── 关键字管理 ├── Prompt 模式 └── 其他配置 ``` ### 数据结构变更 #### 旧数据结构 ```php // 每个提供商独立存储 argon_ai_openai_apis = [ {id: 'api_1', name: '主API', api_key: 'sk-xxx', ...} ] argon_ai_anthropic_apis = [...] // ... 10 个提供商 ``` #### 新数据结构 ```php // 统一存储所有 API argon_ai_apis = [ { id: 'api_1', name: '主 OpenAI API', provider: 'openai', api_key: 'sk-xxx', api_endpoint: '', model: 'gpt-4o-mini', is_active: false, created_at: 1234567890 }, { id: 'api_2', name: '备用 Claude API', provider: 'anthropic', api_key: 'sk-ant-xxx', api_endpoint: '', model: 'claude-3-5-sonnet-20241022', is_active: true, created_at: 1234567891 } ] // 当前使用的 API(按场景) argon_ai_summary_active_api = 'api_1' // 文章摘要使用的 API argon_ai_spam_active_api = 'api_2' // 垃圾评论检测使用的 API ``` ## 实施步骤 ### 步骤 1:数据迁移函数 创建 `argon_migrate_ai_apis()` 函数,将旧的分散数据迁移到新的统一结构。 ### 步骤 2:更新核心函数 - 修改 `argon_get_ai_provider_config()` 支持新数据结构 - 添加 `argon_get_all_apis()` 获取所有 API - 添加 `argon_get_api_by_id($api_id)` 获取指定 API - 添加 `argon_add_api($config)` 添加 API - 添加 `argon_update_api($api_id, $config)` 更新 API - 添加 `argon_delete_api($api_id)` 删除 API - 添加 `argon_set_active_api_for_scenario($scenario, $api_id)` 设置场景使用的 API ### 步骤 3:重构 settings.php - 移除原有的按提供商分组的 API 配置界面 - 创建新的统一 API 列表界面 - 重新组织 AI 功能的设置结构 ### 步骤 4:更新 AJAX 处理函数 - 更新所有 API 管理相关的 AJAX 函数 - 支持新的数据结构 ### 步骤 5:向后兼容 - 在主题加载时自动检测并迁移旧数据 - 保留旧数据作为备份 ## 界面设计 ### API 管理界面 ``` ┌─ 已配置的 API ─────────────────────────────────────┐ │ │ │ ● 主 OpenAI API (gpt-4o-mini) │ │ OpenAI (ChatGPT) | sk-xxx... │ │ [测试] [编辑] [删除] │ │ │ │ ○ 备用 Claude API (claude-3-5-sonnet) │ │ Anthropic (Claude) | sk-ant-xxx... │ │ [测试] [编辑] [删除] │ │ │ │ [+ 添加新 API] │ └─────────────────────────────────────────────────────┘ 添加/编辑 API: ┌─────────────────────────────────────────────────────┐ │ 配置名称: [主 OpenAI API_________________] │ │ API 密钥: [sk-xxx_______________________] [显示] │ │ 提供商: [OpenAI (ChatGPT) ▼] │ │ API 端点: [_____________________________] (可选) │ │ 模型: [gpt-4o-mini__________________] [刷新] │ │ │ │ [保存] [取消] │ └─────────────────────────────────────────────────────┘ ``` ### 文章摘要设置 ``` 启用 AI 摘要: [启用 ▼] 默认使用 API: [主 OpenAI API ▼] Prompt 设置: [...] 排除文章 ID: [...] ``` ### 评论审核设置 ``` 启用 AI 识别: [☑] 启用 AI 自动识别垃圾评论 默认使用 API: [备用 Claude API ▼] 实时检测模式: [智能抽查 ▼] ... ``` ## 优势 1. **统一管理**:所有 API 在一个列表中,一目了然 2. **灵活配置**:不同场景可以使用不同的 API 3. **易于添加**:添加 API 时直接输入密钥和选择提供商 4. **更好的 UX**:不需要在多个提供商之间切换 ## 注意事项 1. **数据迁移**:确保旧数据能够正确迁移到新结构 2. **向后兼容**:保留旧数据作为备份,以防迁移失败 3. **测试充分**:需要测试所有 AI 功能是否正常工作 4. **文档更新**:更新用户文档说明新的配置方式