Files
plugin-comment-ai-autopilot/docs/guide/filter.md
T
nxxy335andWorkBuddy 0959196c34 还原 1.4.1 基线并修复回评开关状态不一致
- 还原工程:以 1.4.1 安装包为来源,补齐缺失的 filterOnly 配置/编排逻辑/UI 开关,gradle build 全绿(5 测试通过)
- 修复「开启回评」:annotation 改用字符串 on/off 契约,FilterService 归一化解析成为唯一判定入口,默认开启、显式关闭生效、重启不丢;新增 FilterServiceTest 锁定行为
- 整体健壮性:白名单/黑名单(兼容数组形态、正则预编译)、清理天数钳制 [1,365]、UI parseCfg 空值判定修正

Co-Authored-By: WorkBuddy <workbuddy@tencent.com>
2026-09-27 22:39:38 +08:00

3.2 KiB
Raw Blame History

过滤规则

过滤规则控制哪些评论触发AI回复,包括文章/页面级开关、评论者黑/白名单。

文章/页面级开关

插件通过 Halo 的 AnnotationSetting 机制,在文章和页面编辑器的元数据区域添加了 启用AI回评 开关。

默认行为

类型 默认状态
文章(Post) 默认开启
页面(SinglePage) 默认关闭

全局页面AI回复开关

在 基本设置 中新增 启用页面AI回复 开关:

  • 开启:所有独立页面一键启用AI回复(包括新建页面)
  • 关闭:所有页面一键关闭AI回复
  • 默认为关闭

::: tip 开启全局页面AI回复后,无需逐个在页面编辑器中开启。新建页面也会自动启用AI回复。 :::

单独控制

  1. 编辑文章或页面
  2. 在编辑器侧边栏找到 元数据 区域
  3. 找到 启用AI回评 开关
  4. 根据需要开启或关闭

!!! note "实现约定(改动前请先阅读)"

`metadata.annotations` 的值只能是字符串,因此该开关在 `annotation-setting.yaml` 中
必须使用 `on-value: "true"` / `off-value: "false"` 显式声明字符串取值。
运行时判定入口为 `FilterService#resolveAnnotation`,其缺省值与 `annotation-setting.yaml`
中的表单默认值必须保持一致:

| 来源 | 文章(Post) | 页面(SinglePage) |
|------|-------------|-------------------|
| 表单默认值 | `value: "true"` | `value: "false"` |
| 运行时缺省 | `DEFAULT_POST_REPLY_ENABLED = true` | `pagesEnabled`(默认 `false`) |

若只想关闭某个页面的回评:在页面编辑器中把开关切到关闭并保存即可(会写入
`ai-reply-enabled: "false"`,运行时优先于全局开关)。

评论者黑名单

评论者黑名单功能可以屏蔽指定评论者,使其评论不触发AI回复。

支持的格式

格式 示例 说明
名称 张三 匹配评论者的显示名称
邮箱 spam@example.com 匹配评论者邮箱(不区分大小写)
正则表达式 regex:^spam.* 以 regex: 开头,按正则匹配

批量操作

  • 批量添加:点击"添加评论者"按钮,弹出评论者列表对话框,支持搜索、多选、全选批量添加,也支持手动输入名称或邮箱
  • 批量移除:名单列表中支持多选后批量移除

::: tip 黑名单中的评论者发布评论时,插件会同时匹配显示名称和邮箱地址(不区分大小写),正则表达式则按模式匹配,匹配成功则跳过AI回复。 :::

评论者白名单

白名单功能让信任的评论者跳过 AI 前置过滤与拦截,避免可信评论被误伤。

配置方法

  1. 在 基本设置 中开启 启用白名单 开关
  2. 在白名单评论者区域添加评论者
  3. 支持批量添加/移除,操作方式与黑名单一致

::: warning 白名单与黑名单关系 白名单优先级高于黑名单:同时命中两者的评论者按白名单处理(跳过拦截但不会触发 AI 回复)。白名单仅跳过 AI 审核拦截,不影响 AI 回复的触发逻辑。 :::