feat: 增强插件可靠性与可用性
- 修复 PromptBuilder ClassLoader 冲突,改为 ConfigMap 直读 - 实现失败重试机制,指数退避策略 - 评论者黑名单支持邮箱匹配,可从评论列表选择 - 日志页面支持按状态/情感筛选和关键词搜索 - AI角色邮箱配置增加 Gravatar 头像实时预览 - 插件依赖声明修正:ai-foundation 改为必须依赖 - 新增定时清理旧记录功能,可配置保留天数 - 更新 README 和 VitePress 文档
This commit is contained in:
@@ -32,3 +32,16 @@
|
||||
| 自动回复 | 是否启用自动回复功能 | 开启 |
|
||||
| 自动发布 | AI回复是否自动发布,关闭则存为草稿 | 开启 |
|
||||
| 最大重试次数 | AI生成失败时的最大重试次数 | 3 |
|
||||
|
||||
## 重试机制
|
||||
|
||||
当AI生成失败(如服务不可用、生成空内容、审核不通过)时,插件会自动重试:
|
||||
|
||||
1. 每次重试递增 `retryCount`
|
||||
2. 重试间隔采用指数退避策略:第1次等5秒,第2次等15秒,第3次等30秒
|
||||
3. 超过最大重试次数后标记为最终失败(FAIL)
|
||||
4. 重试期间记录状态为 PENDING
|
||||
|
||||
::: tip
|
||||
重试次数由 **最大重试次数** 配置项控制,默认为3次。
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# 数据清理
|
||||
|
||||
数据清理功能可以自动删除过期的AI回复记录,防止数据库无限增长。
|
||||
|
||||
## 自动清理
|
||||
|
||||
插件每天自动执行一次清理任务,删除超过保留天数的 `AiCommentReply` 记录。
|
||||
|
||||
### 配置
|
||||
|
||||
| 配置项 | 说明 | 默认值 |
|
||||
|--------|------|--------|
|
||||
| 启用自动清理 | 是否开启自动清理 | 开启 |
|
||||
| 保留天数 | 超过此天数的记录将被清理 | 30 |
|
||||
|
||||
配置路径:**插件设置** → **数据清理**
|
||||
|
||||
## 手动清理
|
||||
|
||||
在数据清理页面点击 **立即清理** 按钮,可以立即执行一次清理操作。清理完成后会显示删除的记录数量。
|
||||
|
||||
::: warning
|
||||
清理操作不可撤销,请根据实际需求设置合理的保留天数。
|
||||
:::
|
||||
|
||||
## 清理范围
|
||||
|
||||
清理操作仅删除 `AiCommentReply` 记录(插件内部的日志记录),不会删除已发布的 Halo Reply 评论。已发布的评论不受影响。
|
||||
@@ -22,3 +22,18 @@
|
||||
- 草稿记录显示 **审核通过** 和 **拒绝** 按钮
|
||||
- 已发布的记录显示正常状态
|
||||
- 被拒绝的记录显示 REJECTED 标签
|
||||
|
||||
## 批量操作
|
||||
|
||||
当日志页面有多条草稿记录时,可以使用批量操作功能:
|
||||
|
||||
1. 勾选要操作的记录(支持全选)
|
||||
2. 选中后顶部显示批量操作工具栏
|
||||
3. 支持的批量操作:
|
||||
- **批量通过** — 一次性审核通过多条草稿
|
||||
- **批量拒绝** — 一次性拒绝多条草稿
|
||||
- **批量删除** — 一次性删除多条记录
|
||||
|
||||
::: warning
|
||||
批量操作不可撤销,请谨慎操作。
|
||||
:::
|
||||
|
||||
@@ -50,3 +50,19 @@
|
||||
## 插件升级后设置丢失了?
|
||||
|
||||
插件升级不会丢失设置。如果遇到问题,请检查 ConfigMap 是否正确迁移。
|
||||
|
||||
## AI生成失败后会怎样?
|
||||
|
||||
插件会自动重试,重试次数由"最大重试次数"配置控制(默认3次)。重试间隔递增(5秒、15秒、30秒)。超过最大重试次数后标记为失败。
|
||||
|
||||
## 如何批量审核草稿回复?
|
||||
|
||||
在AI回复日志页面,勾选多条记录后,使用顶部的批量操作工具栏进行批量通过、拒绝或删除。
|
||||
|
||||
## 旧记录太多怎么办?
|
||||
|
||||
在插件设置的"数据清理"页面,可以配置自动清理超过指定天数的记录(默认30天),也可以点击"立即清理"手动触发。
|
||||
|
||||
## 黑名单支持邮箱吗?
|
||||
|
||||
支持。黑名单同时匹配评论者的显示名称和邮箱地址,不区分大小写。你也可以在设置页面点击"添加评论者"按钮从评论列表中选择。
|
||||
|
||||
+10
-3
@@ -32,13 +32,20 @@
|
||||
|
||||
1. 进入插件设置页面
|
||||
2. 在 **基本设置** 中找到 **评论者黑名单**
|
||||
3. 输入评论者的显示名称,多个用逗号分隔
|
||||
3. 输入评论者的显示名称或邮箱,多个用逗号分隔
|
||||
4. 保存设置
|
||||
|
||||
### 从评论列表选择
|
||||
|
||||
1. 在黑名单输入框旁点击 **添加评论者** 按钮
|
||||
2. 弹出评论者列表对话框
|
||||
3. 搜索并选择要屏蔽的评论者
|
||||
4. 选中后自动添加到黑名单
|
||||
|
||||
### 示例
|
||||
|
||||
```
|
||||
张三,李四,王五
|
||||
张三,spam@example.com,李四
|
||||
```
|
||||
|
||||
黑名单中的评论者发布评论时,插件会跳过AI回复,并在日志中记录过滤原因。
|
||||
黑名单中的评论者发布评论时,插件会同时匹配显示名称和邮箱地址(不区分大小写),匹配成功则跳过AI回复。
|
||||
|
||||
@@ -5,19 +5,27 @@ AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够
|
||||
## 核心功能
|
||||
|
||||
- **自动回复** — 监听新评论,自动调用AI生成回复,支持多轮对话上下文
|
||||
- **多语言适配** — 根据评论语言自动用对应语言回复
|
||||
- **情感分析** — 分析评论情感倾向(正面/中性/负面),根据情感调整回复语气
|
||||
- **草稿模式** — AI回复先存为草稿,管理员审核后再发布
|
||||
- **失败重试** — AI生成失败时自动重试,指数退避策略
|
||||
- **批量操作** — 草稿模式下支持批量通过/拒绝/删除
|
||||
- **文章/页面级开关** — 在文章编辑器中直接控制是否启用AI回复,文章默认开启,页面默认关闭
|
||||
- **评论者黑名单** — 屏蔽指定评论者,不触发AI回复
|
||||
- **手动触发** — 在评论管理页面对历史评论手动触发AI回复
|
||||
- **AI角色** — 自定义AI回复者的昵称、人格提示词和Gravatar头像
|
||||
- **安全审核** — AI生成的内容经过安全审核,不合规内容自动拒绝
|
||||
- **仪表盘统计** — 显示回复数、情感分布、每日回复趋势等图表
|
||||
- **日志筛选搜索** — 按状态、情感筛选,关键词搜索
|
||||
- **数据清理** — 自动清理超过指定天数的旧记录
|
||||
- **AI Foundation 集成** — 必须安装 Halo AI Foundation 插件,使用其提供的AI模型能力
|
||||
|
||||
## 工作流程
|
||||
|
||||
```
|
||||
新评论 → 过滤检查 → 情感分析 → 构建Prompt → AI生成 → 安全审核 → 发布/草稿
|
||||
↓ (失败)
|
||||
重试 → ... → 最终失败
|
||||
```
|
||||
|
||||
1. **新评论到达** — Reconciler 监听到新评论创建事件
|
||||
@@ -27,6 +35,7 @@ AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够
|
||||
5. **AI生成** — 调用AI模型生成回复内容
|
||||
6. **安全审核** — 对生成内容进行安全审核
|
||||
7. **发布/草稿** — 根据设置自动发布或存为草稿等待审核
|
||||
8. **重试** — 如果AI生成失败,系统会自动重试(最多 maxRetryCount 次),每次重试间隔递增
|
||||
|
||||
## 前置要求
|
||||
|
||||
|
||||
@@ -37,3 +37,14 @@ AI回复者的显示名称,默认为「小回」。修改后新回复将使用
|
||||
::: warning
|
||||
如果不填写邮箱,AI回复者将使用 Halo 默认头像。
|
||||
:::
|
||||
|
||||
### 头像预览
|
||||
|
||||
在设置页面输入邮箱后,右侧会实时显示 Gravatar 头像预览,方便确认头像是否正确。
|
||||
|
||||
::: tip
|
||||
如果预览头像不正确,请检查:
|
||||
1. 邮箱是否拼写正确
|
||||
2. 是否已在 [Gravatar](https://gravatar.com) 上为该邮箱设置头像
|
||||
3. 头像更新可能有缓存延迟
|
||||
:::
|
||||
|
||||
+12
-1
@@ -9,7 +9,7 @@
|
||||
| 自动回复 | 是否启用自动回复功能 | 开启 |
|
||||
| 自动发布 | AI回复是否自动发布 | 开启 |
|
||||
| 最大重试次数 | AI生成失败时的最大重试次数 | 3 |
|
||||
| 评论者黑名单 | 不触发AI回复的评论者显示名称,逗号分隔 | 空 |
|
||||
| 评论者黑名单 | 不触发AI回复的评论者显示名称或邮箱,逗号分隔 | 空 |
|
||||
|
||||
## AI角色设置
|
||||
|
||||
@@ -53,3 +53,14 @@
|
||||
| `{{article}}` | 文章内容 |
|
||||
| `{{comment}}` | 评论内容 |
|
||||
| `{{conversation}}` | 对话上下文(多轮对话时) |
|
||||
|
||||
## 数据清理
|
||||
|
||||
| 配置项 | 说明 | 默认值 |
|
||||
|--------|------|--------|
|
||||
| 启用自动清理 | 是否自动清理过期的AI回复记录 | 开启 |
|
||||
| 保留天数 | 超过此天数的记录将被自动清理 | 30 |
|
||||
|
||||
::: tip
|
||||
你也可以在数据清理页面点击"立即清理"按钮手动触发清理操作。
|
||||
:::
|
||||
|
||||
Reference in New Issue
Block a user