- 修复 PromptBuilder ClassLoader 冲突,改为 ConfigMap 直读 - 实现失败重试机制,指数退避策略 - 评论者黑名单支持邮箱匹配,可从评论列表选择 - 日志页面支持按状态/情感筛选和关键词搜索 - AI角色邮箱配置增加 Gravatar 头像实时预览 - 插件依赖声明修正:ai-foundation 改为必须依赖 - 新增定时清理旧记录功能,可配置保留天数 - 更新 README 和 VitePress 文档
48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# 自动回复
|
|
|
|
自动回复是插件的核心功能,当有新评论发布时,插件会自动触发AI生成回复。
|
|
|
|
## 工作原理
|
|
|
|
插件通过 Halo 的 Reconciler 机制监听评论和回复的创建事件:
|
|
|
|
- **CommentReconciler** — 监听新评论,触发首次AI回复
|
|
- **ReplyReconciler** — 监听新回复,当回复者不是AI角色时,触发对话式AI回复
|
|
|
|
## 去重机制
|
|
|
|
为避免重复回复,插件实现了多层去重防护:
|
|
|
|
1. **内存锁** — 使用 `ConcurrentHashMap` 防止同一评论并发处理
|
|
2. **数据库检查** — 处理前查询是否已存在 `AiCommentReply` 记录
|
|
3. **发布前检查** — 创建 Reply 前再次确认不存在重复
|
|
|
|
## 历史评论过滤
|
|
|
|
插件启动时间之前的评论不会触发自动回复,避免安装插件后对大量历史评论批量回复。
|
|
|
|
## 对话式回复
|
|
|
|
当评论者回复AI的评论时,插件会自动提取对话上下文(最近5条回复),让AI的回复更连贯自然。
|
|
|
|
## 配置项
|
|
|
|
| 配置项 | 说明 | 默认值 |
|
|
|--------|------|--------|
|
|
| 自动回复 | 是否启用自动回复功能 | 开启 |
|
|
| 自动发布 | AI回复是否自动发布,关闭则存为草稿 | 开启 |
|
|
| 最大重试次数 | AI生成失败时的最大重试次数 | 3 |
|
|
|
|
## 重试机制
|
|
|
|
当AI生成失败(如服务不可用、生成空内容、审核不通过)时,插件会自动重试:
|
|
|
|
1. 每次重试递增 `retryCount`
|
|
2. 重试间隔采用指数退避策略:第1次等5秒,第2次等15秒,第3次等30秒
|
|
3. 超过最大重试次数后标记为最终失败(FAIL)
|
|
4. 重试期间记录状态为 PENDING
|
|
|
|
::: tip
|
|
重试次数由 **最大重试次数** 配置项控制,默认为3次。
|
|
:::
|