Files
argon-theme/.kiro/steering/ai-settings-refactor-plan.md
nanhaoluo 2c25caae23 feat: 添加统一 API 系统测试脚本和文档
- 创建 test-unified-api-system.php 测试脚本
- 测试功能包括:函数存在性、数据迁移、API配置、向后兼容等
- 添加阶段性实施计划文档
- 添加新 AI 设置界面草稿
2026-01-26 13:25:49 +08:00

5.6 KiB
Raw Blame History

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 模式
    └── 其他配置

数据结构变更

旧数据结构

// 每个提供商独立存储
argon_ai_openai_apis = [
    {id: 'api_1', name: '主API', api_key: 'sk-xxx', ...}
]
argon_ai_anthropic_apis = [...]
// ... 10 个提供商

新数据结构

// 统一存储所有 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. 文档更新:更新用户文档说明新的配置方式