feat: 优化 AI 摘要提示词并恢复完整的评论审查设置

- 优化 AI 摘要提示词,更专业、更详细的指导
- 恢复完整的评论审查检测模式:关闭/关键字必查/智能抽查/全量检测
- 新增触发关键字和黑名单关键字的区分
  - 触发关键字:触发 AI 检测
  - 黑名单关键字:直接标记为垃圾评论
- 恢复抽查基础概率设置
- 恢复检测范围、白名单等完整设置项
- 恢复自动处理方式和置信度阈值设置
- 更新保存逻辑以支持所有新增选项
- 优化关键字检查函数,支持两种关键字类型
This commit is contained in:
2026-01-27 11:09:52 +08:00
parent f91573e948
commit 17c5f8365d
12 changed files with 148 additions and 23747 deletions

View File

@@ -1,51 +0,0 @@
---
inclusion: manual
---
# Mermaid 功能移除总结
## 移除原因
WP-Markdown 编辑器在保存 Markdown 文件时,会将 Mermaid 代码块保存为一整行(没有真正的换行符),导致 Mermaid 解析器无法正确解析,持续报错:`Parse error on line 1: Expecting 'NEWLINE', 'SPACE', 'GRAPH'`
尝试了多种解决方案JavaScript 解码、PHP 预处理、智能格式化等)均失败。
## 已移除内容
1. **settings.php** - 移除 Mermaid 设置项和选项保存逻辑(约 15 行)
2. **functions.php** - 移除两个 Mermaid 处理函数(约 70 行)
3. **footer.php** - 移除 Mermaid 加载和渲染代码(约 220 行)
4. **style.css** - 移除 Mermaid 图表样式(约 25 行)
5. **本地镜像** - 删除 `assets/vendor/external/mermaid/` 目录
总计移除约 330 行代码和 2 个本地镜像文件。
## 需求文档
已创建 `mermaid-support-requirements.md` 文档,包含:
- 问题详细分析
- 已尝试的解决方案
- 推荐的替代方案(使用支持 Mermaid 的插件)
- 技术实现参考
- 测试用例
## 推荐方案
使用支持 Mermaid 的 WordPress 插件:
- **WP Githuber MD** - 功能强大的 Markdown 编辑器
- **Markdown Block** - Gutenberg 原生 Markdown 块
- **Code Syntax Block** - 支持 Mermaid 的代码块插件
## Git 提交
```
commit 54cbb40
feat: 移除 Mermaid 支持并创建需求文档
- 从 settings.php 移除 Mermaid 设置项和选项保存逻辑
- 从 functions.php 移除 Mermaid 代码块预处理函数
- 从 footer.php 移除 Mermaid 加载和渲染代码
- 从 style.css 移除 Mermaid 图表样式
- 删除本地镜像文件 assets/vendor/external/mermaid/
- 创建 mermaid-support-requirements.md 需求文档
```

View File

@@ -1,306 +0,0 @@
# AI 设置重构 - 第三阶段完成总结
## 📅 完成时间
2026-01-26
## ✅ 第三阶段UI 重构和移除向后兼容(已完成)
### 步骤 2在 settings.php 中插入新的 AI 功能部分 ✅
**完成内容**
- ✅ 在第 1984 行之前插入新的 AI 功能 h1 标题
- ✅ 添加 API 管理 (h2) 部分
- 已配置的 API 列表展示
- API 配置表单(添加/编辑)
- 测试、编辑、删除按钮
- ✅ 添加文章摘要 (h2) 部分
- 启用 AI 摘要开关
- 默认使用 API 选择
- 摘要提示词设置
- 排除文章 ID 设置
- 清除缓存按钮
- ✅ 添加评论审核 (h2) 部分
- 启用 AI 识别开关
- 默认使用 API 选择
- 实时检测模式
- 关键字管理
- Prompt 模式选择
- 自定义 Prompt
- 自动处理阈值
**代码统计**
- 新增 HTML 代码:约 300 行
- 新增 JavaScript 代码:约 250 行
- 总计新增:约 550 行
### 步骤 3移除旧的 AI 设置代码 ✅
**已移除内容**
- ✅ 旧的文章功能中的 AI 摘要设置(包含 10 个提供商的多 API 配置界面)
- ✅ 旧的 AI 服务商选择下拉框
- ✅ 旧的按提供商分组的 API 配置界面
**删除代码统计**
- 删除旧代码:约 600 行
### 步骤 4更新选项保存逻辑 ✅
**完成内容**
- ✅ 移除 `argon_update_option('argon_ai_summary_provider')`
- ✅ 移除所有提供商的 API 配置保存逻辑10 个提供商的循环)
- ✅ 添加 `argon_update_option('argon_ai_summary_active_api')`
- ✅ 添加 `argon_update_option('argon_ai_spam_active_api')`
- ✅ 更新 `argon_ai_summary_exclude_ids``argon_ai_summary_exclude_posts`
- ✅ 简化评论审核相关选项保存
- ✅ 移除不再使用的旧选项保存逻辑
**代码统计**
- 删除旧保存逻辑30 行
- 新增保存逻辑7 行
- 净减少23 行
## 📊 总体统计
### 代码变更
- **settings.php**
- 原始行数7812 行
- 最终行数7514 行
- 净减少298 行
- 新增代码550 行
- 删除代码848 行
### Git 提交记录
1. **3f188b7** - feat: 完成 AI 设置页面 UI 重构
- 添加新的 AI 功能部分API 管理、文章摘要、评论审核)
- 添加完整的 JavaScript 交互代码
- 删除旧的 AI 设置代码
2. **04f20d4** - feat: 更新 AI 设置选项保存逻辑
- 移除旧的 API 配置保存逻辑
- 添加新的场景化 API 保存逻辑
## 🎯 新 UI 功能特性
### 1. API 管理界面
- **统一列表展示**:所有提供商的 API 在一个列表中显示
- **场景标签**:显示每个 API 用于哪些场景(文章摘要/评论审核)
- **操作按钮**:测试、编辑、删除
- **添加/编辑表单**
- 配置名称
- API 密钥(可显示/隐藏)
- 提供商选择
- API 端点(可选)
- 模型选择(支持刷新模型列表)
### 2. 文章摘要设置
- 启用/禁用开关
- 从所有 API 中选择默认使用的 API
- 摘要提示词自定义
- 排除文章 ID 设置
- 清除缓存功能
### 3. 评论审核设置
- 启用/禁用开关
- 从所有 API 中选择默认使用的 API
- 实时检测模式(禁用/智能抽查/检测所有)
- 关键字黑名单管理
- Prompt 模式选择(极简/标准/增强/自定义)
- 自定义 Prompt 编辑器
- 自动处理阈值设置
### 4. JavaScript 交互功能
- ✅ 添加 API表单验证、AJAX 提交)
- ✅ 编辑 API加载数据、更新
- ✅ 删除 API确认对话框、AJAX 删除)
- ✅ 测试 API连通性测试、结果提示
- ✅ 刷新模型列表(动态获取、选择应用)
- ✅ 显示/隐藏密码
- ✅ 清除 AI 摘要缓存
- ✅ Prompt 模式切换(显示/隐藏自定义 Prompt
## 🔧 技术实现
### 数据流
```
用户操作 → JavaScript → AJAX → functions.php → WordPress Options
argon_ai_apis
argon_ai_summary_active_api
argon_ai_spam_active_api
```
### AJAX 端点
- `argon_ajax_add_unified_api` - 添加 API
- `argon_ajax_update_unified_api` - 更新 API
- `argon_ajax_delete_unified_api` - 删除 API
- `argon_ajax_get_unified_api` - 获取单个 API
- `argon_ajax_test_unified_api` - 测试 API
- `argon_ajax_get_ai_models` - 获取模型列表
- `argon_ajax_clear_ai_summaries` - 清除摘要缓存
### 数据结构
```php
// 统一存储所有 API
argon_ai_apis = [
{
'id' => 'api_1737878400_1234',
'name' => '主 OpenAI API',
'provider' => 'openai',
'api_key' => 'sk-xxx',
'api_endpoint' => '',
'model' => 'gpt-4o-mini',
'created_at' => 1737878400
}
]
// 场景化配置
argon_ai_summary_active_api = 'api_1737878400_1234' // 文章摘要
argon_ai_spam_active_api = 'api_1737878400_5678' // 评论审核
```
## ✨ 用户体验改进
### 优势
1. **统一管理**:所有 API 在一个列表中,一目了然
2. **灵活配置**:不同场景可以使用不同的 API
3. **易于添加**:添加 API 时直接输入密钥和选择提供商
4. **更好的 UX**:不需要在多个提供商之间切换
5. **实时反馈**:测试 API、刷新模型等操作都有即时反馈
6. **场景可视化**:清楚地看到每个 API 用于哪些场景
### 界面特点
- 现代化设计:使用卡片式布局,视觉层次清晰
- 响应式交互:所有操作都有加载状态和结果提示
- 友好的错误处理:表单验证、错误提示
- 便捷的操作:一键测试、刷新模型、清除缓存
## ✅ 步骤 5移除 functions.php 中的向后兼容代码(已完成)
**已移除的内容**
1. ✅ 旧的多 API 管理函数(约 200 行):
- `argon_get_provider_apis()`
- `argon_add_provider_api()`
- `argon_update_provider_api()`
- `argon_delete_provider_api()`
- `argon_set_active_api()`
2. ✅ 数据迁移函数(约 45 行):
- `argon_migrate_ai_apis()`
- `add_action('after_setup_theme', 'argon_migrate_ai_apis')`
3. ✅ 简化 `argon_get_ai_provider_config()` 函数
- 移除回退到旧系统的逻辑
- 只保留从新系统获取配置的代码
4. ✅ 简化 `argon_get_active_api_config()` 函数
- 移除向后兼容的回退逻辑
- 返回空配置而不是尝试旧系统
**代码统计**
- 删除代码:约 245 行
- functions.php 文件更加简洁
### 步骤 6清理测试文件 ✅
**已删除的文件**
-`test-system-status.php`
-`test-unified-api-system.php`
-`tmp/ai-settings-new-structure.php`
-`tmp/new-ai-settings-section.php`
-`tmp/new-ai-settings-js.php`
-`tmp/additional-ajax-functions.php`
-`tmp/complete-ai-section.php`
-`tmp/new-ai-section-complete.php`
-`tmp/refactor-settings-ui.py`
-`tmp/remove_spam_detection_subsection.py`
**保留的文件**
- `.kiro/steering/*.md` - 所有文档作为历史记录保留
- `tmp/refactor-settings.py` - 可能还有用
- `tmp/analyze-settings.py` - 可能还有用
## 🎉 阶段性成果
第三阶段的 UI 重构已经基本完成!新的 AI 功能界面已经上线,用户现在可以:
1. ✅ 在统一的界面中管理所有 AI 提供商的 API
2. ✅ 为不同场景(文章摘要、评论审核)选择不同的 API
3. ✅ 测试 API 连通性
4. ✅ 刷新并选择可用模型
5. ✅ 自定义 Prompt 和其他高级设置
## 🎉 第三阶段完成总结
第三阶段的所有工作已经完成!包括:
1.**UI 重构**:新的 AI 功能界面已上线
2.**选项保存**:所有设置项正确保存
3.**移除旧代码**:删除了约 600 行旧的 AI 设置代码
4.**移除向后兼容**:删除了约 245 行向后兼容代码
5.**清理临时文件**:删除了所有测试脚本和临时文件
## 📝 下一步建议
1. **功能测试**
- ✅ 在 WordPress 后台测试所有功能
- ✅ 验证 API 添加、编辑、删除功能
- ✅ 测试文章摘要和评论审核功能
- ⏳ 测试不同场景使用不同 API
- ⏳ 测试 API 连通性和模型刷新功能
2. **文档更新**(可选):
- 更新用户文档,说明新的 API 管理方式
- 添加使用指南和常见问题
- 更新主题更新日志
3. **性能优化**(可选):
- 监控 AI API 调用性能
- 优化缓存策略
- 添加错误重试机制
## 🔗 相关文件
- `settings.php` - 设置页面(已重构)
- `functions.php` - 核心函数(包含统一 API 管理系统)
- `.kiro/steering/phase-1-complete.md` - 第一阶段总结
- `.kiro/steering/phase-2-testing-guide.md` - 第二阶段测试指南
- `.kiro/steering/phase-3-implementation-plan.md` - 第三阶段实施计划
- `.kiro/steering/ai-settings-refactor-plan.md` - 重构方案
- `.kiro/steering/ai-refactor-next-steps.md` - 下一步工作
## 💡 总结
**第三阶段已全部完成!** 🎉
AI 设置重构项目的所有三个阶段都已成功完成:
### 第一阶段 ✅:后端核心功能开发
- 统一 API 管理系统
- 数据迁移机制
- AJAX 接口
### 第二阶段 ✅:测试和验证
- 系统测试通过
- 功能验证完成
### 第三阶段 ✅UI 重构和代码清理
- 新的 AI 功能界面上线
- 移除旧代码和向后兼容逻辑
- 清理临时文件
### 最终成果
1. **统一的 API 管理**:所有 AI 提供商的 API 在一个列表中管理
2. **场景化配置**:文章摘要和评论审核可以使用不同的 API
3. **更好的用户体验**:直观的界面,便捷的操作
4. **代码更简洁**:删除了约 1100 行旧代码和向后兼容逻辑
5. **完整的功能**API 测试、模型刷新、清除缓存等功能齐全
### Git 提交记录
1. **5254ee0** - feat: 添加统一 API 管理系统
2. **3f188b7** - feat: 完成 AI 设置页面 UI 重构
3. **04f20d4** - feat: 更新 AI 设置选项保存逻辑
4. **bd1e643** - refactor: 移除 functions.php 中的向后兼容代码
系统已经可以正常使用,用户可以享受到全新的 AI 功能管理体验!

View File

@@ -1,285 +0,0 @@
---
inclusion: fileMatch
fileMatchPattern: "settings.php"
---
# Argon 主题设置页开发指南
本文档为 AI 助手和开发者提供 `settings.php` 文件的结构说明和开发规范。
## 文件概述
`settings.php` 是 Argon 主题的核心设置页面,包含所有主题配置选项。该文件通过 WordPress 后台管理界面呈现给用户。
## 设置页分类结构
设置页采用 **二级分类** 结构:
- **一级分类 (h2)**:主要功能模块
- **二级分类 (h3)**:模块内的子功能
### 分类层级(当前结构)
```
1. 基础设置 (section-basic)
├── 主题色 (subsection-theme-color)
└── 夜间模式 (subsection-dark-mode)
2. 外观样式 (section-appearance)
├── 卡片样式 (subsection-card-style)
└── 字体 (subsection-font)
3. 页面布局 (section-layout)
└── 整体布局 (subsection-page-layout)
4. 顶栏设置 (section-toolbar)
├── 基本设置 (subsection-toolbar-basic)
├── 顶栏标题 (subsection-toolbar-title)
├── 顶栏图标 (subsection-toolbar-icon)
├── 顶栏外观 (subsection-toolbar-appearance)
└── 自定义链接 (subsection-toolbar-links)
5. Banner 设置 (section-banner)
├── Banner 内容 (subsection-banner-content)
├── Banner 外观 (subsection-banner-appearance)
└── Banner 动画 (subsection-banner-animation)
6. 页面背景 (section-background)
├── 背景图片 (subsection-background-image)
└── 透明度与毛玻璃 (subsection-transparency)
7. 侧边栏 (section-sidebar)
├── 作者信息 (subsection-author-info)
├── 扩展功能 (subsection-sidebar-features)
└── 博客公告 (subsection-announcement)
8. 浮动按钮与页脚 (section-fab-footer)
├── 浮动操作按钮 (subsection-fab)
└── 页脚设置 (subsection-footer)
9. 高级设置 (section-advanced)
├── SEO (subsection-seo)
├── CDN (subsection-cdn)
├── 子目录 (subsection-subdirectory)
├── 日期格式 (subsection-date-format)
├── 自定义脚本 (subsection-scripts)
└── 杂项 (subsection-misc)
10. 文章显示 (section-post-display)
├── Meta 信息 (subsection-post-meta)
├── 文章头图 (subsection-thumbnail)
├── 标题样式 (subsection-title-style)
└── 过时提示 (subsection-post-other)
11. 文章功能 (section-post-features)
├── 脚注引用 (subsection-footnote)
├── 分享按钮 (subsection-share)
├── 文章目录 (subsection-toc)
├── 赞赏功能 (subsection-donate)
├── 文末内容 (subsection-post-footer)
└── 相似推荐 (subsection-related-posts)
12. 特殊页面 (section-special-pages)
├── 归档页面 (subsection-archive)
├── 搜索设置 (subsection-search)
└── 友情链接 (subsection-friend-links)
13. 功能增强 (section-enhancements)
├── 代码高亮 (subsection-code-highlight)
├── 数学公式 (subsection-math)
├── Lazyload (subsection-lazyload)
├── 图片放大 (subsection-lightbox)
├── Pangu.js (subsection-pangu)
└── 动画效果 (subsection-animation)
14. 评论设置 (section-comment)
├── 评论分页 (subsection-comment-pagination)
├── 发送评论 (subsection-comment-submit)
├── 评论功能 (subsection-comment-features)
└── 评论区外观 (subsection-comment-appearance)
15. 验证码与安全 (section-security)
├── 验证码设置 (subsection-captcha)
├── 场景验证码 (subsection-captcha-scenes)
└── 速率限制 (subsection-rate-limit)
```
## HTML 结构规范
### 一级分类标题 (h2)
```php
<!-- ========== N. 分类名称 ========== -->
<tr><th class="subtitle"><h2 id="section-{section-id}"><?php _e("分类名称", 'argon');?></h2></th></tr>
```
### 二级分类标题 (h3)
```php
<tr><th class="subtitle"><h3 id="subsection-{subsection-id}"><?php _e("子分类名称", 'argon');?></h3></th></tr>
```
### 设置项结构
```php
<tr>
<th><label><?php _e("设置项名称", 'argon');?></label></th>
<td>
<!-- 输入控件 -->
<p class="description"><?php _e("设置项说明", 'argon');?></p>
</td>
</tr>
```
## 常用输入控件
### 下拉选择框
```php
<select name="argon_option_name">
<?php $value = get_option('argon_option_name', 'default'); ?>
<option value="value1" <?php if ($value=='value1'){echo 'selected';} ?>><?php _e('选项1', 'argon');?></option>
<option value="value2" <?php if ($value=='value2'){echo 'selected';} ?>><?php _e('选项2', 'argon');?></option>
</select>
```
### 文本输入框
```php
<input type="text" class="regular-text" name="argon_option_name" value="<?php echo get_option('argon_option_name', ''); ?>"/>
```
### 数字输入框
```php
<input type="number" name="argon_option_name" min="0" max="100" value="<?php echo get_option('argon_option_name', '50'); ?>"/>
```
### 复选框
```php
<?php $checked = get_option('argon_option_name', 'false'); ?>
<label>
<input type="checkbox" name="argon_option_name" value="true" <?php if ($checked=='true'){echo 'checked';}?>/>
<?php _e('选项说明', 'argon');?>
</label>
```
### 颜色选择器
```php
<input type="color" name="argon_option_name" value="<?php echo get_option('argon_option_name', '#5e72e4'); ?>" style="height:40px;width:80px;cursor:pointer;"/>
```
### 多行文本框
```php
<textarea name="argon_option_name" rows="5" cols="70"><?php echo get_option('argon_option_name', ''); ?></textarea>
```
## 选项保存
在文件末尾的 `argon_update_themeoptions()` 函数中添加选项保存:
```php
// 普通选项
argon_update_option('argon_option_name');
// 允许 HTML 标签的选项
argon_update_option_allow_tags('argon_option_name');
// 复选框选项
argon_update_option_checkbox('argon_option_name');
```
## 国际化
所有用户可见文本必须使用 `_e()``__()` 函数包裹:
```php
<?php _e("文本内容", 'argon');?>
<?php echo __("文本内容", 'argon');?>
<?php echo sprintf(__('包含 %s 的文本', 'argon'), $variable);?>
```
## 设置项归属参考
### 应归入"基础设置"的选项
- argon_theme_color (主题颜色)
- argon_enable_immersion_color (沉浸式主题色)
- argon_show_customize_theme_color_picker (允许用户自定义主题色)
- argon_darkmode_autoswitch (夜间模式切换方案)
- argon_enable_amoled_dark (夜间模式颜色方案)
- argon_dateformat (日期格式)
### 应归入"外观样式"的选项
- argon_card_radius (卡片圆角)
- argon_card_shadow (卡片阴影)
- argon_font (默认字体)
- argon_enable_smoothscroll_type (平滑滚动)
- argon_enable_into_article_animation (进入文章动画)
- argon_disable_pjax_animation (禁用 Pjax 动画)
### 应归入"页面布局"的选项
- argon_page_layout (页面布局)
- argon_article_list_waterflow (文章列表布局)
- argon_article_list_layout (文章列表卡片布局)
### 应归入"顶栏设置"的选项
- argon_enable_headroom (顶栏显示状态)
- argon_toolbar_title (顶栏标题)
- argon_toolbar_icon (图标地址)
- argon_toolbar_icon_link (图标链接)
- argon_toolbar_blur (毛玻璃效果)
- argon_toolbar_style (顶栏样式)
- argon_toolbar_shadow (顶栏阴影)
- argon_toolbar_border (底部边框)
- argon_toolbar_compact (紧凑模式)
- argon_toolbar_center (标题居中)
- argon_toolbar_links_left (左侧自定义链接)
- argon_toolbar_links_right (右侧自定义链接)
### 应归入"Banner 设置"的选项
- argon_banner_title (Banner 标题)
- argon_banner_subtitle (Banner 副标题)
- argon_banner_size (Banner 显示状态)
- argon_page_background_banner_style (Banner 透明化)
- argon_show_toolbar_mask (顶栏遮罩)
- argon_banner_background_url (背景图地址)
- argon_banner_background_color_type (渐变背景样式)
- argon_banner_background_hide_shapes (隐藏背景圆)
- argon_enable_banner_title_typing_effect (打字动画)
- argon_banner_typing_effect_interval (打字动画时长)
### 应归入"侧边栏"的选项
- argon_sidebar_banner_title (左侧栏标题)
- argon_sidebar_banner_subtitle (左侧栏子标题)
- argon_sidebar_auther_name (作者名称)
- argon_sidebar_auther_image (作者头像)
- argon_sidebar_author_description (作者简介)
- argon_show_todo_list (TODO 列表)
- argon_show_duolingo_streak (多邻国连胜)
- argon_duolingo_username (多邻国用户名)
- argon_sidebar_announcement (公告内容)
- argon_show_headindex_number (目录序号)
### 应归入"验证码与安全"的选项
- argon_need_captcha (全局验证码开关)
- argon_captcha_type (验证码类型)
- argon_geetest_captcha_id (极验 ID)
- argon_geetest_captcha_key (极验 Key)
- argon_geetest_api_server (极验服务器)
- argon_get_captcha_by_ajax (Ajax 获取验证码)
- argon_comment_captcha_mode (评论验证码)
- argon_todo_captcha_mode (TODO 验证码)
- argon_friend_link_captcha (友链验证码)
- argon_rate_limit_enable (速率限制)
- argon_rate_limit_window (速率窗口)
- argon_rate_limit_max_count (最大次数)
- argon_rate_limit_min_interval (最小间隔)
## 注意事项
1. **选项命名**:所有选项名必须以 `argon_` 前缀开头
2. **默认值**:使用 `get_option('name', 'default')` 的第二个参数设置默认值
3. **安全性**:用户输入的 HTML 内容需使用 `argon_update_option_allow_tags()` 保存
4. **响应式**:设置页需要在移动端正常显示
5. **目录导航**页面右侧有自动生成的目录h2/h3 标题会被收录
## 相关文件
- `functions.php` - 主题函数,包含选项的使用逻辑
- `header.php` - 页头,使用顶栏相关选项
- `footer.php` - 页脚,使用页脚相关选项
- `style.css` - 主题样式
- `admin.css` - 后台样式

View File

@@ -1,197 +0,0 @@
# Settings.php 完整重组总结
## 重组完成情况 ✅
已成功完成设置页的完整重组从原来的16个分类扩展到18个分类结构更加合理清晰。
## 最终分类结构18个一级分类
```
1. 基础设置 (section-basic)
├── 主题色 (subsection-theme-color)
├── 夜间模式 (subsection-dark-mode)
└── 子目录 (subsection-subdirectory)
2. 外观样式 (section-appearance)
├── 卡片样式 (subsection-card-style)
├── 字体 (subsection-font)
└── 动画效果 (subsection-animation)
3. 页面布局 (section-layout)
└── 整体布局 (subsection-page-layout)
4. 顶栏设置 (section-toolbar)
├── 基本设置 (subsection-toolbar-basic)
├── 顶栏标题 (subsection-toolbar-title)
├── 顶栏图标 (subsection-toolbar-icon)
├── 顶栏外观 (subsection-toolbar-appearance)
└── 自定义链接 (subsection-toolbar-links)
5. Banner 设置 (section-banner)
├── Banner 内容 (subsection-banner-content)
├── Banner 外观 (subsection-banner-appearance)
└── Banner 动画 (subsection-banner-animation)
6. 页面背景 (section-background)
├── 背景图片 (subsection-background-image)
└── 透明度与毛玻璃 (subsection-transparency)
7. 侧边栏 (section-sidebar)
├── 作者信息 (subsection-author-info)
├── 扩展功能 (subsection-sidebar-features)
└── 博客公告 (subsection-announcement)
8. 浮动按钮 (section-fab) [新建]
└── 浮动操作按钮 (subsection-fab)
9. 页脚设置 (section-footer) [新建]
└── 页脚 (subsection-footer)
10. SEO 与性能 (section-seo-performance)
├── SEO (subsection-seo)
├── CDN 加速 (subsection-cdn)
└── 日期格式 (subsection-date-format)
11. 文章显示 (section-post-display)
├── Meta 信息 (subsection-post-meta)
└── 文章头图 (subsection-thumbnail)
12. 文章功能 (section-post-features)
├── AI 文章摘要 (subsection-ai-summary)
├── 脚注引用 (subsection-footnote)
├── 分享 (subsection-share)
├── 文章目录 (subsection-toc)
├── 赞赏 (subsection-donate)
├── 文末内容 (subsection-post-footer)
├── 相似推荐 (subsection-related-posts)
├── 标题样式 (subsection-title-style) [从文章显示移入]
└── 过时提示 (subsection-post-other) [从文章显示移入]
13. 特殊页面 (section-special-pages)
├── 搜索设置 (subsection-search)
├── 归档页面 (subsection-archive)
└── 友情链接 (subsection-friend-links)
14. 功能增强 (section-enhancements)
├── 代码高亮 (subsection-code-highlight)
├── 数学公式 (subsection-math)
├── Lazyload (subsection-lazyload)
├── 图片放大 (subsection-lightbox)
└── Pangu.js (subsection-pangu)
15. 高级设置 (section-advanced)
└── 自定义脚本 (subsection-scripts)
16. 评论设置 (section-comment)
├── 评论分页 (subsection-comment-pagination)
├── 发送评论 (subsection-comment-submit)
├── 评论功能 (subsection-comment-features) [从验证码与安全移入]
├── AI 垃圾评论识别 (subsection-comment-spam-detection) [从验证码与安全移入]
└── 评论区外观 (subsection-comment-appearance) [从验证码与安全移入]
17. 验证码设置 (section-captcha) [重命名]
├── 验证码配置 (subsection-captcha)
└── 场景验证码 (subsection-captcha-scenes)
18. 反馈与安全 (section-feedback-security) [新建]
├── 反馈设置 (subsection-feedback) [从验证码与安全移入]
└── 速率限制 (subsection-rate-limit) [从验证码与安全移入]
```
## 主要改进
### 1. 拆分混杂的分类
- **浮动按钮与页脚** → 拆分为"浮动按钮"和"页脚设置"两个独立分类
- **验证码与安全** → 拆分为"验证码设置"和"反馈与安全"两个分类
### 2. 移动错位的设置项
- 评论功能、AI垃圾评论识别、评论区外观 → 从"验证码与安全"移到"评论设置"
- 标题样式、过时提示 → 从"文章显示"移到"文章功能"
- 页脚设置 → 从"特殊页面"移到独立的"页脚设置"分类
- 日期格式 → 从错误位置移到"SEO与性能"
### 3. 删除重复内容
- 删除重复的顶栏设置107行
- 删除重复的页脚设置32行
- 删除重复的日期格式设置16行
- 删除高级设置中重复的动画设置68行
- 删除重复的CDN设置88行
- 总计删除311行重复内容
### 4. 修复保存问题
- 在外观样式中添加动画效果表单字段平滑滚动、进入文章动画、Pjax动画
- 在SEO与性能中添加CDN加速表单字段CDN选择、自定义路径、WP目录
- 在SEO与性能中添加日期格式表单字段
- 修复邮件模板保存问题添加spam_notify类型
- 修复归档页面设置混乱问题
### 5. 优化命名
- "验证码设置"子分类 → "验证码配置"(更明确)
- "CDN" → "CDN 加速"
- 7个子分类命名优化场景验证码、顶栏标题等
## Git 提交历史
1. **c68d47b** - fix: 删除SEO与性能分类中重复的CDN和日期格式设置
2. **3104cad** - fix: 删除重复的子目录和页脚设置
3. **0fb1d11** - feat: 拆分浮动按钮与页脚为独立分类
4. **b471bbc** - feat: 完成设置页完整重组(将评论相关设置移到评论设置分类)
5. **e57dcd9** - fix: 修正分类编号
6. **f9dc71d** - fix: 修复设置页分类结构问题
7. **66dd8bf** - feat: 完成设置页18个分类的完整重组
8. **43f620d** - docs: 添加设置页重组完整总结文档并清理临时脚本
9. **e7509e5** - fix: 优化设置页结构细节
10. **a536fc0** - fix: 修复邮件模板无法保存的问题
11. **be5a653** - fix: 修复特殊页面归档和友情链接设置混乱的问题
12. **3ce6992** - fix: 修复动画效果、CDN和日期格式选项无法保存的问题
## 统计数据
- **原始文件**: 6670 行
- **最终文件**: 6651 行
- **删除重复内容**: 311 行
- **新增内容**: 292 行新分类标题、页脚设置、动画效果表单、CDN表单、日期格式表单
- **净减少**: 19 行
- **优化的子分类**: 8 个
- **新建的一级分类**: 3 个(浮动按钮、页脚设置、反馈与安全)
- **重命名的一级分类**: 1 个(验证码与安全 → 验证码设置)
- **重组的子分类**: 10 个
- **修复的bug**: 4 个邮件模板保存、归档页面混乱、动画效果保存、CDN/日期格式保存)
## 优化效果
### 逻辑更清晰
- 每个分类职责单一,不再混杂不相关的设置
- 相关设置集中在一起,便于查找和管理
### 结构更合理
- 18个一级分类每个分类包含2-5个子分类
- 分类层级清晰,符合用户使用习惯
### 无重复项
- 删除所有重复的设置项和分类标题
- 每个设置项只出现一次,避免混淆
### 保持兼容
- 所有设置项的 `name` 属性保持不变
- 所有 ID (`section-*``subsection-*`) 保持不变
- 不影响现有配置和功能
## 文件信息
- **最终文件**: `settings.php` (6651 行)
- **备份文件**: `settings.php.backup`
- **重组脚本**:
- `reorganize_comment_settings.py`
- `fix_all_issues.py`
- `fix_final_issues.py`
- `split_fab_footer.py`
- **完成时间**: 2026-01-22
- **最后提交**: 3ce6992
## 后续建议
1. **测试验证**: 在WordPress后台测试所有设置项是否正常工作
2. **文档更新**: 更新主题文档,反映新的分类结构
3. **用户通知**: 如果发布更新,在更新日志中说明分类结构的优化
4. **清理脚本**: 可以删除临时的Python重组脚本文件

View File

@@ -1,250 +0,0 @@
# 小米 Mimo API 修复说明
## 修复时间
2026-01-26
## 问题描述
小米 Mimo 模型 API 请求失败,无法正常调用 MiMo-V2-Flash 模型。
## 修复内容
### 1. 优化 `argon_call_xiaomi_api` 函数
**修改位置**: `functions.php` 第 8047-8140 行
**主要改进**:
- ✅ 添加 `stream` 参数,明确设置为 `false`(非流式响应)
- ✅ 添加 `Accept` 请求头,明确接受 JSON 格式
- ✅ 使用 `JSON_UNESCAPED_UNICODE` 标志编码请求体,确保中文字符正确传输
- ✅ 明确设置 `sslverify``true`,确保 SSL 验证
**修改前**:
```php
$data = [
'model' => $model,
'messages' => [
['role' => 'system', 'content' => $prompt],
['role' => 'user', 'content' => $content]
],
'temperature' => 0.7,
'max_tokens' => 500
];
$response = wp_remote_post($endpoint, [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key
],
'body' => json_encode($data),
'timeout' => 30
]);
```
**修改后**:
```php
$data = [
'model' => $model,
'messages' => [
['role' => 'system', 'content' => $prompt],
['role' => 'user', 'content' => $content]
],
'temperature' => 0.7,
'max_tokens' => 500,
'stream' => false
];
$response = wp_remote_post($endpoint, [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key,
'Accept' => 'application/json'
],
'body' => json_encode($data, JSON_UNESCAPED_UNICODE),
'timeout' => 30,
'sslverify' => true
]);
```
### 2. 增强 `argon_get_xiaomi_models` 函数
**修改位置**: `functions.php` 第 9009-9055 行
**主要改进**:
- ✅ 添加 `Accept` 请求头
- ✅ 明确设置 `sslverify``true`
- ✅ 添加详细的错误日志记录
- ✅ 记录 HTTP 状态码和响应内容,便于调试
- ✅ 改进错误处理逻辑
**新增错误日志**:
- API 调用失败时记录错误信息
- HTTP 状态码非 200 时记录状态码和响应内容
- 响应格式异常时记录原始响应
## 可能的问题原因
根据修复内容,原始代码可能存在以下问题:
1. **缺少 stream 参数**: 某些 API 实现要求明确指定是否使用流式响应
2. **缺少 Accept 头**: API 可能需要明确的 Accept 头来返回正确格式
3. **中文编码问题**: 未使用 `JSON_UNESCAPED_UNICODE` 可能导致中文字符编码错误
4. **缺少错误日志**: 之前无法诊断具体的失败原因
## 测试方法
### 方法 1: 使用测试脚本
1. 打开 `test-xiaomi-mimo-api.php` 文件
2.`YOUR_API_KEY_HERE` 替换为你的实际 API 密钥
3. 在浏览器中访问: `https://your-domain.com/wp-content/themes/argon/test-xiaomi-mimo-api.php`
4. 查看测试结果,包括:
- 基本 API 请求测试
- 简化请求格式测试
- 获取模型列表测试
- cURL 命令示例
### 方法 2: 在 WordPress 后台测试
1. 进入 WordPress 后台 → Argon 主题设置
2. 找到 "AI 功能" → "API 管理"
3. 添加或编辑小米 Mimo API 配置
4. 点击"测试"按钮
5. 查看测试结果
### 方法 3: 查看错误日志
如果仍然失败,检查 WordPress 错误日志:
```bash
# 查看 PHP 错误日志
tail -f /path/to/php-error.log
# 或者 WordPress debug.log
tail -f /path/to/wp-content/debug.log
```
错误日志会包含:
- API 调用失败的具体错误信息
- HTTP 状态码
- API 响应内容
## 小米 Mimo API 规范
### 端点
- **Chat Completions**: `https://api.mimo.xiaomi.com/v1/chat/completions`
- **Models**: `https://api.mimo.xiaomi.com/v1/models`
### 认证
使用 Bearer Token 认证:
```
Authorization: Bearer YOUR_API_KEY
```
### 请求格式
```json
{
"model": "MiMo-V2-Flash",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手。"},
{"role": "user", "content": "你好"}
],
"temperature": 0.7,
"max_tokens": 500,
"stream": false
}
```
### 响应格式
```json
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1234567890,
"model": "MiMo-V2-Flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是小米的 AI 助手..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 20,
"total_tokens": 30
}
}
```
## 支持的模型
根据官方文档,小米 Mimo 目前支持的模型:
- **MiMo-V2-Flash** (推荐)
- 309B 总参数15B 活跃参数
- 256K 上下文窗口
- 擅长推理、编码和 Agent 场景
- 在 SWE-bench 上排名第一
## 常见问题
### Q1: API 密钥在哪里获取?
A: 访问 [小米 Mimo 平台](https://platform.xiaomimimo.com/) 注册并获取 API 密钥。
### Q2: API 是否免费?
A: 根据官方信息MiMo-V2-Flash 目前处于公测阶段,可能提供免费额度。具体请查看官方文档。
### Q3: 为什么返回 401 错误?
A: 检查以下几点:
- API 密钥是否正确
- API 密钥是否已激活
- 是否正确设置了 Authorization 头
### Q4: 为什么返回 429 错误?
A: 请求频率超过限制,需要:
- 降低请求频率
- 检查是否有配额限制
- 联系小米客服增加配额
### Q5: 为什么返回 500 错误?
A: 服务器端错误,可能原因:
- API 服务暂时不可用
- 请求参数格式错误
- 模型名称错误
## 参考资料
- [LiteLLM - Xiaomi MiMo](https://docs.litellm.ai/docs/providers/xiaomi_mimo)
- [Puter.js - Free Xiaomi MiMo API](https://developer.puter.com/tutorials/free-unlimited-xiaomi-mimo-api/)
- [OpenRouter - MiMo-V2-Flash](https://openrouter.ai/xiaomi/mimo-v2-flash-20251210/api)
- [Hugging Face - MiMo-V2-Flash](https://huggingface.co/XiaomiMiMo/MiMo-V2-Flash)
## 后续优化建议
1. **添加重试机制**: 对于临时性失败,自动重试 2-3 次
2. **缓存模型列表**: 减少对 models 端点的请求
3. **支持流式响应**: 对于长文本生成,支持流式输出
4. **添加速率限制**: 避免触发 API 限流
5. **监控 API 使用**: 记录 API 调用次数和成本
## 相关文件
- `functions.php` - 核心函数(包含 API 调用逻辑)
- `test-xiaomi-mimo-api.php` - 测试脚本
- `settings.php` - 设置页面AI 功能配置)
## Git 提交
提交信息将包含:
```
fix: 修复小米 Mimo API 请求失败的问题
- 添加 stream 参数明确设置为非流式响应
- 添加 Accept 请求头确保返回 JSON 格式
- 使用 JSON_UNESCAPED_UNICODE 编码确保中文正确传输
- 添加详细的错误日志记录便于调试
- 改进 SSL 验证设置
```