From 60d938c1da6e201b01529e4a27084750b55959e1 Mon Sep 17 00:00:00 2001 From: sunny-335 Date: Tue, 7 Jul 2026 08:26:05 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=85=A8=E9=9D=A2=E6=9B=B4=E6=96=B0v1.?= =?UTF-8?q?4.0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - index.md: 更新特性卡片(移除自学习,新增页面开关/状态检测/批量操作) - introduction.md: 更新核心功能列表(5模块提示词/页面开关/批量操作/智能检测) - settings.md: 重写设置文档(新配置项/白名单批量操作/页面开关/状态检测/手动清理) - prompt.md: 四模块改为五模块(新增语言要求),移除自学习引用,标注可选 - persona.md: 添加人格提示词留空使用基础配置说明 - filter.md: 添加全局页面开关和白名单批量操作说明 - cleanup.md: 添加手动清理时间节点和二次确认说明 - auto-reply.md: 更新配置项表格(重试/轮次/速率限制) - faq.md: 更新AI Foundation状态检测和清理问题 - CHANGELOG.md: 重写v1.4.0更新日志 --- docs/CHANGELOG.md | 67 +++++++++---------- docs/guide/auto-reply.md | 6 +- docs/guide/cleanup.md | 9 ++- docs/guide/faq.md | 28 +++++--- docs/guide/filter.md | 57 +++++++++------- docs/guide/introduction.md | 23 ++++--- docs/guide/persona.md | 6 +- docs/guide/prompt.md | 28 +++++--- docs/guide/settings.md | 134 +++++++++++++++---------------------- docs/index.md | 18 ++--- 10 files changed, 193 insertions(+), 183 deletions(-) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 052581d..ed1a29a 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,51 +2,46 @@ ## v1.4.0 -> 2026-07-02 +> 2026-07-06 ### 新增 -- **AI审核白名单** — 管理员自动入白名单 + 支持手动添加其他评论者;白名单内评论跳过 AI 审核拦截。与黑名单并排显示 -- **黑/白名单移除按钮** — 名单列表中每个评论者新增移除按钮 -- **Comment Next 插件冲突检测** — 检测 plugin-comment-next 是否安装启用,若启用则提示冲突并提供 AI回复/AI拦截配置页跳转链接 -- **日志「操作」按钮** — 替代原删除按钮,根据记录状态显示不同操作(取消通过AI回复/取消通过评论者评论/触发AI回复/删除违规评论) -- **日志回复角色显示与筛选** — 日志列表显示回复角色名标签,筛选下拉新增角色筛选项 -- **取消通过AI回复/评论者评论** — 新增端点支持取消已发布回复的通过状态 -- **模块化提示词配置** — 拆分为角色身份、安全审核、情感适配、输出规范4个独立模块,各默认填入完整默认值 -- **设置页新增配置项** — 最大重试次数、最大对话轮次(支持0=无限制+二次确认)、速率限制(支持0=无限制+二次确认)、回复质量自学习开关 -- **AI Foundation 未安装明确提示** — 显示「未安装插件依赖」+ 安装链接 -- **首页待审核卡片条件显示** — 仅在关闭自动发布时显示,启用前置过滤且违规设待审核时显示违规待审核数 -- **日志删除评论多选项** — 日志页删除按钮改为弹窗,根据记录状态提供不同选项 - - 正常状态(PASS/PENDING/REVIEWING/FALSE_POSITIVE)提供「仅删除AI回评」「删除评论者评论」「仅删除日志」「取消」四项 - - 已拦截状态(FILTERED)提供「确定」「取消」二项 - - 「仅删除AI回评」删除已发布 Reply 扩展,日志标记为 DELETED 保留 - - 「删除评论者评论」级联删除 Comment 及关联 Reply/AiCommentReply -- **AI角色按场景切换** — 支持为文章分类(Category)指定默认 AI 角色,在模型设置中配置分类角色映射。解析优先级:唤醒词 > Post/Category/Tag 标注 > 分类角色映射 > 全局默认。瞬间评论使用全局默认 -- **回复质量自学习** — 从历史被拒绝回复中提取共性特征(长度/开头词/语气词),生成时注入「避免以下风格」提示。默认关闭,在基本设置中开启 -- **首页待审核卡片** — 首页新增待审核独立卡片,一键跳转审核 +- **黑/白名单批量操作** — 支持多选、全选、批量添加/移除评论者,弹窗支持从历史评论者多选和手动输入 +- **全局页面AI回复开关** — 一键启用/禁用所有独立页面的AI回复(包括新建页面),默认关闭 +- **语言要求提示词模块** — 新增第五个提示词模块 `languageRequirement`,可自定义多语言回复规则 +- **已拦截数统计** — 首页概览卡片新增已拦截数统计(已失败和待审核之间) +- **AI Foundation 智能状态检测** — 区分未安装/未启用/未配置模型三种状态,提供对应快捷跳转按钮 +- **手动清理自定义时间节点** — 手动清理支持自定义清理天数(默认7天前),二次确认弹窗防误操作 +- **实时刷新偏好持久化** — 日志页实时刷新开关和刷新间隔通过 localStorage 自动保存,默认开启10秒间隔 +- **配置导入导出** — 支持将插件配置(ConfigMap + AI角色)导出为 JSON 文件,方便备份和迁移 ### 改进 -- **首页角色卡片完善** — 显示完整角色信息(唤醒词、性别等) -- **「查看日志」按钮移至标题栏** — 位于「插件设置」右侧 -- **移除角色卡片「修改配置」按钮** — 统一使用标题栏入口 -- **分类角色映射移至AI角色配置组** — 从模型设置组迁移 -- **移除提示词预设** — 避免自定义角色时提示词重复组合,预设模板移至文档 -- **统一使用 Halo 官方弹窗组件** — 所有二次确认弹窗改用 `VModal` 组件,移除浏览器原生 `confirm()`。删除角色、导入配置等操作均使用统一的官方弹窗 -- **AI角色删除后自动刷新** — 删除角色后自动重新拉取角色列表,确保已删除角色不再显示 -- **日志页分页改用官方组件** — 使用 Halo 官方 `VPagination` 组件,新增每页条数选择器(10/20/50/100,默认20) -- **首页信息整合** — 「回复概览」更名为「概览」,移除通过率进度条,AI Foundation 连接状态整合到概览卡片,移除独立健康横幅和快捷操作卡片 -- **自定义提示词模板默认留空** — settings.yaml 默认值改为空字符串,未填写时后端使用完整 `DEFAULT_PROMPT_TEMPLATE` -- **修复文档变量显示问题** — 文档中 `{{变量}}` 在 markdown 渲染时不显示,改用 `` 包裹修复 -- **修正头像默认行为描述** — 邮箱为空时使用 Gravatar 默认头像(非 Halo 默认头像) +- **"提示词"改为"人格提示词"** — AI角色编辑弹窗中的提示词改名为人格提示词,留空时使用基础配置的 personaIdentity +- **配置项重构** — 最大重试次数(0为不重试,最大10,默认3)、最大对话轮次(0为不限制,默认10)、速率限制(0为不限制,默认0/h)移至基本设置,滑条改为输入框,模型设置中删除重复项 +- **提示词均为可选项** — 五个提示词模块均标注"(可选)",留空使用默认值 +- **白名单文案修正** — 删除"管理员自动加入白名单"的显示文案(实际不支持自动加入) +- **手动清理区域样式优化** — 红色危险主题卡片式布局,输入框组与按钮高度对齐 +- **分类角色映射迁移** — 从模型设置组迁移至 AI 角色配置组(persona) +- **瞬间评论 group 校验** — Moment 评论判断增加 group 双重校验,避免误判同名资源 + +### 移除 + +- **回复质量自学习功能** — 因正常情况下不会被拒绝且已有自动审核,移除 ReplyLearningService 及所有相关引用 +- **提示词预设开关** — 移除设置页内的提示词预设开关(友好型/专业型/幽默型/简洁型),预设模板保留在文档中 ### Bug 修复 -- **修复删除违规评论时误删日志** — deleteCommenterComment 改为保留 AiCommentReply 日志记录,仅删除 Comment 和 Reply 扩展 -- **修复 WhitelistService 类型推断错误** — ObjectNode 三元表达式类型推断问题 -- **修复配置导入 400 Bad Request** — 导出的 personas 含完整 Extension 只读元数据(creationTimestamp/finalizers/labels 等),导入更新时未清理导致校验异常。导入前清洗 metadata 仅保留必要字段 -- **修复 `deleteAiReplyOnly` 乐观锁重试无效** — 删除 Reply 期间版本号可能过期,重试复用过期 record 必然失败。改为重试前重新 fetch 最新版本 -- **修复 `deleteCommenterComment` 空指针风险** — AiCommentReply 列表过滤未检查 `spec == null`,畸形数据触发 NPE +- **修复配置导入 400 Bad Request** — 导入时清除 persona 的 labels、annotations 等只读 metadata 字段 +- **修复所有注册用户绕过白名单过滤** — WhitelistService 中 isRegisteredUser 改为 isAdminUser,只检查 super-role 和 role-admin +- **修复 getAdminList 误标管理员** — 改为只匹配 role-admin 角色的用户 +- **修复手动输入评论者无法添加** — addManualEntry 方法实际将条目加入选中列表 +- **修复手动输入框回车触发表单提交** — 添加 .prevent 修饰符 +- **修复 AI Foundation 状态显示不正确** — 未配置模型时不再错误显示"连接正常" +- **修复 Comment Next 冲突提醒不显示** — 增强检测逻辑支持多种插件名称模式 +- **修复 AI Foundation 插件跳转路径** — 从 /console/plugins/plugin-ai-foundation 改为 /console/plugins/ai-foundation +- **修复前端导入错误提示不显示** — 显示实际错误信息而非通用的"导入失败" +- **修复 categoryPersonaMap 配置分组不一致** — 新增 persona 配置组,前端正确读写 --- diff --git a/docs/guide/auto-reply.md b/docs/guide/auto-reply.md index a099131..ddec87a 100644 --- a/docs/guide/auto-reply.md +++ b/docs/guide/auto-reply.md @@ -57,9 +57,9 @@ |--------|------|--------| | 自动回复 | 是否启用自动回复功能 | 开启 | | 自动发布 | AI回复是否自动发布,关闭则存为草稿 | 开启 | -| 最大对话轮次 | 同一评论线程中AI最多自动回复的轮次 | 8 | -| 速率限制 | 每分钟最大AI回复数量 | 10 | -| 最大重试次数 | AI生成失败时的最大重试次数 | 3 | +| 最大重试次数 | AI生成失败时的最大重试次数(0为不重试,最大10) | 3 | +| 最大对话轮次 | 同一评论线程中AI最多自动回复的轮次(0为不限制) | 10 | +| 速率限制(每小时) | 每小时最大AI回复数量(0为不限制) | 0(不限制) | ## 重试机制 diff --git a/docs/guide/cleanup.md b/docs/guide/cleanup.md index c86f9da..2aa91e1 100644 --- a/docs/guide/cleanup.md +++ b/docs/guide/cleanup.md @@ -17,10 +17,15 @@ ## 手动清理 -在数据清理页面点击 **立即清理** 按钮,可以立即执行一次清理操作。清理完成后会显示删除的记录数量。 +手动清理区域支持自定义清理时间节点: + +1. 在输入框中填写清理天数(默认7天前) +2. 点击 **立即清理** 按钮 +3. 弹出二次确认弹窗,显示"确定要清理 N 天前的所有AI回复记录吗?此操作不可撤销。" +4. 确认后执行清理,清理完成后显示删除的记录数量 ::: warning -清理操作不可撤销,请根据实际需求设置合理的保留天数。 +清理操作不可撤销,执行前会弹出确认弹窗。请根据实际需求设置合理的清理天数。 ::: ## 清理范围 diff --git a/docs/guide/faq.md b/docs/guide/faq.md index 1162a19..84cba96 100644 --- a/docs/guide/faq.md +++ b/docs/guide/faq.md @@ -37,8 +37,12 @@ ## 如何修改AI回复的语气风格? -1. 在插件设置中修改 **AI角色人格提示词** -2. 或修改 **自定义Prompt模板** +1. 在插件设置中修改 **AI角色的人格提示词** +2. 或修改提示词设置中的 **角色身份提示词(personaIdentity)** + +::: tip +AI角色的人格提示词留空时自动使用基础配置中的角色身份提示词(personaIdentity),无需重复填写。 +::: ## AI Foundation 插件是必须的吗? @@ -48,6 +52,10 @@ 编辑页面,在元数据区域关闭 **启用AI回评** 开关。页面默认就是关闭的。 +::: tip 全局页面AI回复开关 +在 **基本设置** 中有 **启用页面AI回复** 开关,开启后所有页面(包括新建页面)一键启用AI回复,关闭则一键关闭所有页面。默认为关闭。 +::: + ## 插件升级后设置丢失了? 插件升级不会丢失设置。如果遇到问题,请检查 ConfigMap 是否正确迁移。 @@ -62,7 +70,7 @@ ## 旧记录太多怎么办? -在插件设置的"数据清理"页面,可以配置自动清理超过指定天数的记录(默认30天),也可以点击"立即清理"手动触发。 +在插件设置的"数据清理"页面,可以配置自动清理超过指定天数的记录(默认30天),也可以手动清理。手动清理支持自定义时间节点(默认清理7天前的记录),执行前会弹出二次确认弹窗。 ## 黑名单支持邮箱吗? @@ -80,13 +88,17 @@ 在插件设置页面顶部点击 **导出** 按钮,将当前配置导出为 JSON 文件。在目标实例中点击 **导入** 按钮选择该文件即可恢复配置。导入会覆盖当前配置,请谨慎操作。 -## AI Foundation 显示"部分功能不可用"怎么办? +## AI Foundation 显示"未安装"或"未启用"怎么办? -这通常表示 AI Foundation 插件未正确配置模型。请检查: +插件首页会自动检测 AI Foundation 的状态并显示对应的警告卡片: -1. AI Foundation 插件已安装并启用 -2. 在 AI Foundation 中配置了至少一个 AI 模型 -3. 如果回评插件未指定模型名称,将使用 AI Foundation 的默认模型 +| 状态 | 提示 | 解决方案 | +|------|------|---------| +| 未安装 | AI Foundation 未安装 | 前往插件页面或应用商店安装 | +| 已安装未启用 | AI Foundation 未启用 | 前往插件页面启用 | +| 已启用未配置模型 | 未配置默认模型 | 在 AI Foundation 中添加模型并设置默认模型 | + +点击警告卡片上的快捷按钮可直接跳转到对应页面。 ## 前置过滤会误伤正常评论吗? diff --git a/docs/guide/filter.md b/docs/guide/filter.md index aff63d9..6c517ab 100644 --- a/docs/guide/filter.md +++ b/docs/guide/filter.md @@ -1,6 +1,6 @@ # 过滤规则 -过滤规则控制哪些评论触发AI回复,包括文章/页面级开关和评论者黑名单。 +过滤规则控制哪些评论触发AI回复,包括文章/页面级开关、评论者黑/白名单。 ## 文章/页面级开关 @@ -13,28 +13,29 @@ | 文章(Post) | 默认开启 | | 页面(SinglePage) | 默认关闭 | -### 使用方法 +### 全局页面AI回复开关 + +在 **基本设置** 中新增 **启用页面AI回复** 开关: + +- **开启**:所有独立页面一键启用AI回复(包括新建页面) +- **关闭**:所有页面一键关闭AI回复 +- 默认为关闭 + +::: tip +开启全局页面AI回复后,无需逐个在页面编辑器中开启。新建页面也会自动启用AI回复。 +::: + +### 单独控制 1. 编辑文章或页面 2. 在编辑器侧边栏找到 **元数据** 区域 3. 找到 **启用AI回评** 开关 4. 根据需要开启或关闭 -::: tip -新创建的文章默认启用AI回复,新创建的页面默认禁用。你可以在编辑器中随时修改。 -::: - ## 评论者黑名单 评论者黑名单功能可以屏蔽指定评论者,使其评论不触发AI回复。 -### 配置方法 - -1. 进入插件设置页面 -2. 在 **基本设置** 中找到 **评论者黑名单** -3. 输入评论者的显示名称、邮箱或正则表达式,多个用逗号分隔 -4. 保存设置 - ### 支持的格式 | 格式 | 示例 | 说明 | @@ -43,17 +44,25 @@ | 邮箱 | `spam@example.com` | 匹配评论者邮箱(不区分大小写) | | 正则表达式 | `regex:^spam.*` | 以 `regex:` 开头,按正则匹配 | -### 从评论列表选择 +### 批量操作 -1. 在黑名单输入框旁点击 **添加评论者** 按钮 -2. 弹出评论者列表对话框 -3. 搜索并选择要屏蔽的评论者 -4. 选中后自动添加到黑名单 - -### 示例 - -``` -张三, spam@example.com, 李四, regex:^spam.* -``` +- **批量添加**:点击"添加评论者"按钮,弹出评论者列表对话框,支持搜索、多选、全选批量添加,也支持手动输入名称或邮箱 +- **批量移除**:名单列表中支持多选后批量移除 +::: tip 黑名单中的评论者发布评论时,插件会同时匹配显示名称和邮箱地址(不区分大小写),正则表达式则按模式匹配,匹配成功则跳过AI回复。 +::: + +## 评论者白名单 + +白名单功能让信任的评论者跳过 AI 前置过滤与拦截,避免可信评论被误伤。 + +### 配置方法 + +1. 在 **基本设置** 中开启 **启用白名单** 开关 +2. 在白名单评论者区域添加评论者 +3. 支持批量添加/移除,操作方式与黑名单一致 + +::: warning 白名单与黑名单关系 +白名单优先级高于黑名单:同时命中两者的评论者按白名单处理(跳过拦截但不会触发 AI 回复)。白名单仅跳过 AI 审核**拦截**,不影响 AI 回复的触发逻辑。 +::: diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md index f8ceae5..2a02df4 100644 --- a/docs/guide/introduction.md +++ b/docs/guide/introduction.md @@ -5,27 +5,28 @@ AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够 ## 核心功能 - **自动回复** — 监听新评论,自动调用AI生成回复,支持多轮对话上下文 -- **多 AI 角色** — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像,可为不同文章指定不同角色 +- **多 AI 角色** — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像,可为不同文章指定不同角色,人格提示词留空时使用基础配置的角色身份提示词 - **唤醒词** — 评论以唤醒词开头可唤醒指定角色回复,支持自定义唤醒词,可在未启用AI回评的页面使用唤醒词召唤AI - **性别与语气** — AI角色支持性别配置(男/女)和中性语气风格,AI回复时保持对应性别身份 -- **多语言适配** — 根据评论语言自动用对应语言回复 +- **多语言适配** — 根据评论语言自动用对应语言回复,语言要求提示词可自定义 - **情感分析** — 分析评论情感倾向(非常正面/正面/中性/负面/非常负面),根据情感调整回复语气 - **草稿模式** — AI回复先存为草稿,管理员审核后再发布 -- **失败重试** — AI生成失败时自动重试,指数退避策略 +- **失败重试** — AI生成失败时自动重试,最大重试次数可配置(0-10次,默认3次) - **批量操作** — 草稿模式下支持批量通过/拒绝/删除 -- **文章/页面级开关** — 在文章编辑器中直接控制是否启用AI回复,文章默认开启,页面默认关闭 -- **评论者黑名单** — 屏蔽指定评论者,不触发AI回复,支持名称、邮箱和正则表达式 +- **文章/页面级开关** — 在文章编辑器中直接控制是否启用AI回复,文章默认开启,页面默认关闭;支持全局页面AI回复开关一键启用/禁用所有页面(包括新建页面) +- **评论者黑/白名单** — 支持按名称、邮箱屏蔽/信任指定评论者,支持批量添加和批量移除,白名单内评论者跳过前置过滤 - **前置过滤(合规检测)** — AI回复前对评论进行合规性分类,自动拦截广告/辱骂/敏感/乱码内容,节省Token;可选将违规评论设为待审核状态 - **误报反馈** — 被误拦截的评论可进行误报反馈,支持"AI回复"和"仅通过"两种处理方式,"仅通过"后可随时补触发 AI 回复 - **手动触发** — 在评论管理页面对历史评论手动触发AI回复 -- **安全审核** — AI生成的内容经过两阶段安全审核(安全检查 + 质量评分),不合规内容自动拒绝 -- **Prompt 预设** — 内置友好型、专业型、幽默型、简洁型预设风格,可多选组合 -- **对话轮次限制** — 同一评论线程中限制 AI 最多回复轮次,防止无限对话 -- **速率限制** — 每分钟最大 AI 回复数量,防止批量评论消耗过多额度 -- **日志筛选搜索** — 按状态、情感筛选,关键词搜索 +- **安全审核** — AI生成的内容经过安全审核,不合规内容自动拒绝 +- **模块化提示词** — 拆分角色身份、安全审核、情感适配、输出规范、语言要求5个独立模块,各模块均为可选,留空使用默认值 +- **对话轮次限制** — 同一评论线程中限制 AI 最多回复轮次,0为不限制,默认10轮 +- **速率限制** — 每小时最大 AI 回复数量,0为不限制,防止批量评论消耗过多额度 +- **日志筛选与实时刷新** — 按状态、情感、角色筛选,关键词搜索;实时刷新偏好自动保存(默认开启10秒间隔) - **对话上下文查看** — 在日志页面查看完整对话上下文,支持引用摘要展示和 Gravatar 头像显示 -- **数据清理** — 自动清理超过指定天数的旧记录 +- **数据清理** — 自动清理超过指定天数的旧记录,手动清理支持自定义时间节点(默认7天前),二次确认防误操作 - **配置导入导出** — 支持将插件配置导出为 JSON 文件,方便备份和迁移 +- **智能状态检测** — 自动检测 AI Foundation 安装/启用/模型配置状态并给出快捷跳转;检测 Comment Next 插件冲突并提供配置页跳转 - **AI Foundation 集成** — 通过 Halo 官方推荐的 `ExtensionGetter` 获取 AI 服务,需安装 AI Foundation 插件 ## 工作流程 diff --git a/docs/guide/persona.md b/docs/guide/persona.md index b687694..68ce433 100644 --- a/docs/guide/persona.md +++ b/docs/guide/persona.md @@ -34,7 +34,11 @@ AI回复者的显示名称,默认为「小回」。修改后新回复将使用 人格提示词定义了AI角色的性格和回复风格,是影响回复质量的关键配置。 -**默认提示词:** +::: tip 留空使用基础配置 +人格提示词**留空时自动使用基础配置中的角色身份提示词(personaIdentity)**,无需重复填写。如需为角色设置独特人格,在此填写即可覆盖默认值。 +::: + +**默认提示词(留空时使用):** > 你是「小回」,一个友善的评论者。你的回复简洁自然,像朋友聊天一样。简短的评论就简短回复,有深度的讨论才展开回应。不要长篇大论,不要复述文章内容。 diff --git a/docs/guide/prompt.md b/docs/guide/prompt.md index 06a2b47..898b61c 100644 --- a/docs/guide/prompt.md +++ b/docs/guide/prompt.md @@ -1,8 +1,8 @@ # 提示词模板 -提示词控制 AI 生成回复时的完整提示词结构。v1.4.0 起将原单一模板拆分为 **角色身份、安全审核、情感适配、输出规范** 四个独立模块,各模块在「提示词设置」中以独立文本框配置,留空时自动使用内置默认值,避免自定义角色时提示词重复组合导致的指令冲突。 +提示词控制 AI 生成回复时的完整提示词结构。v1.4.0 起将原单一模板拆分为 **角色身份、安全审核、情感适配、输出规范、语言要求** 五个独立模块,各模块在「提示词设置」中以独立文本框配置,**均为可选项**,留空时自动使用内置默认值,避免自定义角色时提示词重复组合导致的指令冲突。 -## 四个模块 +## 五个模块 | 模块 | 配置项 | 说明 | 默认值 | |------|--------|------|--------| @@ -10,18 +10,19 @@ | 安全审核 | safetyReview | 内容安全红线与边界约束(仅启用前置过滤时显示) | 见下方 | | 情感适配 | sentimentAdapter | 依据评论情感倾向调整回复语气 | 见下方 | | 输出规范 | outputGuidance | 回复长度、格式、风格等通用约束 | 见下方 | +| 语言要求 | languageRequirement | 根据评论语言自动匹配回复语言的约束规则 | 见下方 | ::: tip 留空即用默认 -四个模块的配置项均支持留空。留空时后端自动填入完整默认值,无需手动填写即可获得稳定的 AI 输出。若仅需调整某一模块(如只改角色身份),其他模块保持留空即可。 +五个模块的配置项均支持留空。留空时后端自动填入完整默认值,无需手动填写即可获得稳定的 AI 输出。若仅需调整某一模块(如只改角色身份),其他模块保持留空即可。 ::: ## 组装顺序 提示词由后端按固定顺序拼接,无需在模块中手动放置占位符: -1. **角色身份** — personaIdentity 模块(若 AI 角色扩展配置了人格提示词,则优先使用角色扩展的设定) -2. **安全审核** — safetyReview 模块 + 回复质量自学习提示(开启时追加「避免以下风格」) -3. **语言要求** — 内置模块,根据评论语言匹配回复语言(不可配置) +1. **角色身份** — personaIdentity 模块(若 AI 角色配置了人格提示词,则优先使用角色的人格设定) +2. **安全审核** — safetyReview 模块 +3. **语言要求** — languageRequirement 模块 4. **输出规范** — outputGuidance 模块 5. **情感适配** — sentimentAdapter 模块 + 动态情感提示(非中性情感时追加) 6. **上下文信息** — 文章标题、发布日期、评论数、文章内容、对话历史、评论(由系统自动注入) @@ -62,6 +63,12 @@ - 只有评论涉及具体内容时才针对性回应 ``` +### 语言要求(languageRequirement) + +``` +请使用与评论相同的语言回复。如果评论是中文,请用中文回复;如果是英文,请用英文回复;以此类推。 +``` + ## 上下文自动注入 以下上下文由系统在组装提示词时自动追加到末尾,**无需在模块中手动写入**,列出供了解 AI 可见的信息: @@ -76,7 +83,7 @@ | {{comment}} | 评论内容(含评论者名称) | 始终注入 | ::: warning 不再支持模板占位符 -v1.4.0 起,提示词改为四个独立模块直接拼接,**不再支持** {{persona_prompt}}{{safety_prompt}} 等模板占位符替换。请直接在对应模块文本框中填写内容,系统会按固定顺序自动组装。 +v1.4.0 起,提示词改为五个独立模块直接拼接,**不再支持** {{persona_prompt}}{{safety_prompt}} 等模板占位符替换。请直接在对应模块文本框中填写内容,系统会按固定顺序自动组装。 ::: ## 情感提示 @@ -132,7 +139,7 @@ v1.4.0 移除了设置页内的提示词预设开关,避免自定义角色时 ``` ::: tip 组合使用 -以上模板可直接替换角色身份模块内容,也可作为 AI 角色扩展中「人格提示词」的参考。情感适配与输出规范模块保持默认即可适配大多数场景。 +以上模板可直接替换角色身份模块内容,也可作为 AI 角色中「人格提示词」的参考。情感适配与输出规范模块保持默认即可适配大多数场景。 ::: ## 自定义建议 @@ -144,5 +151,6 @@ v1.4.0 移除了设置页内的提示词预设开关,避免自定义角色时 3. 安全审核模块留空时会强制使用默认安全规范,建议保持留空 4. 输出规范模块可用于控制回复长度、格式等通用约束 5. 情感适配模块可调整不同情感倾向下的语气策略 -6. 避免在模块中重复角色身份、安全约束等内容,防止指令冲突 -7. 文章内容、评论、对话历史等上下文由系统自动注入,无需手动写入 +6. 语言要求模块可自定义多语言回复规则 +7. 避免在模块中重复角色身份、安全约束等内容,防止指令冲突 +8. 文章内容、评论、对话历史等上下文由系统自动注入,无需手动写入 diff --git a/docs/guide/settings.md b/docs/guide/settings.md index ed9388d..03eb336 100644 --- a/docs/guide/settings.md +++ b/docs/guide/settings.md @@ -16,33 +16,23 @@ |--------|------|--------| | 自动回复 | 是否启用自动回复功能 | 开启 | | 自动发布 | AI回复是否自动发布,关闭则存为草稿 | 开启 | -| 最大对话轮次 | 同一评论线程中AI最多自动回复的轮次 | 8 | -| 速率限制 | 每分钟最大AI回复数量,防止批量评论消耗过多额度 | 10 | -| 最大重试次数 | AI生成失败时的最大重试次数 | 3 | -| 评论者黑名单 | 不触发AI回复的评论者,支持名称、邮箱和正则表达式(`regex:` 开头),逗号分隔 | 空 | -| 启用白名单 | 管理员与白名单内评论者跳过 AI 审核拦截,避免误伤可信评论 | 开启 | -| 白名单评论者 | 命中名单的评论者将跳过 AI 前置过滤与拦截,每行一个评论者显示名称或用户名 | 空 | +| 最大重试次数 | AI生成失败时的最大重试次数(0为不重试,最大10) | 3 | +| 最大对话轮次 | 同一评论线程中AI最多自动回复的轮次(0为不限制,需二次确认) | 10 | +| 速率限制(每小时) | 每小时最大AI回复数量(0为不限制,需二次确认) | 0(不限制) | +| 启用页面AI回复 | 开启后所有独立页面一键启用AI回复(包括新建页面),关闭则一键关闭 | 关闭 | +| 评论者黑名单 | 不触发AI回复的评论者,支持名称、邮箱和正则表达式(`regex:` 开头) | 空 | +| 启用白名单 | 白名单内评论者跳过 AI 前置过滤与拦截 | 开启 | +| 白名单评论者 | 命中名单的评论者将跳过 AI 前置过滤与拦截 | 空 | | 启用前置过滤 | AI回复前检测评论合规性,拦截广告/辱骂/敏感内容,节省Token | 开启 | | 违规评论设为待审核 | 检测到违规评论时自动取消通过,需人工审核 | 开启 | | 瞬间评论区适配 | 为瞬间插件(Moments)的评论区启用AI自动回复,仅当检测到瞬间插件已安装并启用时显示 | 开启 | -| 回复质量自学习 | 从被拒绝的 AI 回复中学习共性特征(长度/开头词/语气词),生成时注入「避免以下风格」提示,优化后续回复风格 | 关闭 | -::: tip 评论者黑名单 -黑名单支持三种格式: -- **名称**:如 `张三` -- **邮箱**:如 `spam@example.com`(不区分大小写) -- **正则表达式**:以 `regex:` 开头,如 `regex:^spam.*` +::: tip 黑/白名单批量操作 +黑名单和白名单均支持批量操作: -点击"添加评论者"按钮可从已有评论列表中选择评论者自动添加到黑名单。 -::: - -::: tip 评论者白名单 -白名单与黑名单在设置页并排显示,命中白名单的评论者将 **跳过 AI 前置过滤与拦截**,避免可信评论被误伤: - -- **管理员自动入白名单**:站点管理员发布的评论默认进入白名单 -- **手动添加**:点击"添加评论者"按钮可从已有评论列表中选择评论者添加到白名单 -- **移除**:黑/白名单列表中每个评论者右侧均提供「移除」按钮,可单独移除 -- 白名单评论者每行一个,填写评论者显示名称或用户名 +- **批量添加**:点击"添加评论者"按钮,弹出评论者列表对话框,支持搜索、多选、全选批量添加,也支持手动输入名称或邮箱 +- **批量移除**:名单列表中支持多选后批量移除 +- 白名单内评论者跳过 AI 前置过滤与拦截,避免可信评论被误伤 ::: ::: warning 白名单与黑名单关系 @@ -53,21 +43,21 @@ 启用前置过滤后,AI 在生成回复前会综合判断评论者昵称与评论内容进行合规性分类,识别以下类别: - **正常**:放行,继续走 AI 回复流程 -- **广告**:包含推广链接、产品推销、引流信息等;或评论者昵称本身即为广告(如"免费算命"、"加微信xxx"、"代写论文"、"低价代购"等带有明显商业推广意图的昵称) +- **广告**:包含推广链接、产品推销、引流信息等;或评论者昵称本身即为广告 - **辱骂攻击**:包含辱骂、人身攻击、恶意挑衅、歧视性言论等 - **敏感内容**:涉及政治敏感、违法违规、色情暴力等 -- **无意义**:纯乱码、无意义字符堆砌(如随机符号、键盘乱敲) +- **无意义**:纯乱码、无意义字符堆砌 对于非"正常"类别的评论,插件会: 1. **停止生成 AI 回复**,节省 Token 与 API 调用 2. 创建一条 `FILTERED` 状态的日志记录(可在日志页通过"已拦截"状态筛选查看) -3. 若启用"违规评论设为待审核",会自动将原评论的 `approved` 置为 `false`,使其进入待审核队列,需人工判断后审核通过 +3. 若启用"违规评论设为待审核",会自动将原评论的 `approved` 置为 `false` -被误拦截的评论可在日志页点击 **误报反馈** 按钮处理,支持"AI 回复"和"仅通过"两种方式。选择"仅通过"后记录变为"误报通过"状态,可随时点击"触发AI回复"按钮补生成回复。 +被误拦截的评论可在日志页点击 **误报反馈** 按钮处理,支持"AI 回复"和"仅通过"两种方式。 ::: warning -前置过滤依赖 AI Foundation 插件进行分类判断,会额外消耗少量 Token。若 AI 服务不可用或分类失败,为安全起见将拦截评论而非放行,防止违规内容漏网。 +前置过滤依赖 AI Foundation 插件进行分类判断,会额外消耗少量 Token。若 AI 服务不可用或分类失败,为安全起见将拦截评论而非放行。 ::: ::: @@ -78,15 +68,15 @@ AI角色定义了回复评论的虚拟身份。支持创建多个角色,每个 | 配置项 | 说明 | 默认值 | |--------|------|--------| | 角色昵称 | AI回复者的显示名称 | 小回 | -| 性别与语气 | 角色性别(男/女)+ 中性语气复选框(勾选=中性语气,取消勾选=跟随性别语气) | 女 + 中性语气 | +| 性别与语气 | 角色性别(男/女)+ 中性语气复选框 | 女 + 中性语气 | | 唤醒词 | 评论以此词开头则唤醒该角色回复,留空不启用 | 空 | -| 人格提示词 | 定义AI角色的人格和回复风格 | 见下方 | +| 人格提示词 | 定义AI角色的人格和回复风格,留空则使用基础配置中的角色身份提示词(personaIdentity) | 见下方 | | 邮箱 | 用于 Gravatar 头像服务展示头像 | 空 | | 设为默认 | 将该角色设为默认角色 | 第一个角色默认 | -默认人格提示词: - -> 你是「小回」,一个友善的评论者。你的回复简洁自然,像朋友聊天一样。简短的评论就简短回复,有深度的讨论才展开回应。不要长篇大论,不要复述文章内容。 +::: tip 人格提示词 +人格提示词定义了AI角色的性格和回复风格。**留空时自动使用基础配置中的角色身份提示词(personaIdentity)**,无需重复填写。如需为角色设置独特人格,在此填写即可覆盖默认值。 +::: ::: tip Gravatar头像 填写邮箱后,AI回复者的头像将通过 [Gravatar](https://gravatar.com) 服务自动生成,使用 [Cravatar](https://cn.cravatar.com) 镜像。如果不填写邮箱,将使用 Gravatar 默认头像。 @@ -94,7 +84,7 @@ AI角色定义了回复评论的虚拟身份。支持创建多个角色,每个 ### 分类角色映射 -v1.4.0 起将「分类角色映射」从模型设置组迁移至 AI 角色配置组。支持为文章分类(Category)指定默认 AI 角色,解析优先级为:唤醒词 > Post/Category/Tag 标注 > 分类角色映射 > 全局默认。瞬间评论使用全局默认角色。 +支持为文章分类(Category)指定默认 AI 角色,解析优先级为:唤醒词 > Post/Category/Tag 标注 > 分类角色映射 > 全局默认。瞬间评论使用全局默认角色。 配置格式为 JSON:`{"分类名":"角色名"}`,未配置的分类使用默认角色。例如: @@ -110,45 +100,36 @@ v1.4.0 起将「分类角色映射」从模型设置组迁移至 AI 角色配置 | 配置项 | 说明 | 默认值 | |--------|------|--------| | AI模型名称 | 留空使用AI Foundation默认模型,填写AiModel资源名称可指定模型 | 空 | -| 最大重试次数 | AI 生成失败时的最大重试次数(1-10) | 3 | -| 对话轮次上限 | AI 在同一评论线程中自动回复的最大轮次,填 0 表示无限制(需二次确认) | 10 | -| 每小时速率限制 | 每小时最大 AI 回复数量,填 0 表示无限制(需二次确认)。优先级高于每分钟限制 | 0(无限制) | - -::: warning 设为 0(无限制)需谨慎 -「对话轮次上限」和「每小时速率限制」设为 0 表示无限制,可能导致对话失控或资源耗尽。设为 0 时会弹出二次确认提示,请确认后再保存。 -::: +| 分类角色映射 | 为文章分类指定默认AI角色,JSON格式 | 空 | ::: warning -模型设置需要先安装 AI Foundation 插件。AI Foundation 是本插件的必要依赖,请确保已正确安装和配置。若未安装,首页会显示「未安装插件依赖 AI Foundation」提示卡,并提供「前往安装」链接。 +模型设置需要先安装 AI Foundation 插件。若未安装或未配置模型,首页会显示对应的警告卡片并提供快捷跳转按钮。 ::: ## 提示词设置 -v1.4.0 起将原单一提示词模板拆分为四个独立模块,各模块以独立文本框配置,留空时自动使用内置默认值。详细的模块说明、默认值与预设模板参考请参阅 [提示词模板](./prompt.md)。 +提示词拆分为五个独立模块,各模块以独立文本框配置,**均为可选项,留空时自动使用内置默认值**。详细的模块说明、默认值与预设模板参考请参阅 [提示词模板](./prompt.md)。 | 配置项 | 说明 | 默认值 | |--------|------|--------| -| 角色身份提示词 | 定义 AI 角色的基础身份与对话风格,留空使用默认值 | 默认值 | -| 安全审核提示词 | 内容安全红线与边界约束,留空使用默认值(仅启用前置过滤时显示) | 默认值 | -| 情感适配提示词 | 依据评论情感倾向调整回复语气,留空使用默认值 | 默认值 | -| 输出规范提示词 | 回复长度/格式/风格等通用约束,留空使用默认值 | 默认值 | +| 角色身份提示词(personaIdentity) | 定义 AI 角色的基础身份与对话风格,可选 | 默认值 | +| 安全审核提示词(safetyReview) | 内容安全红线与边界约束,可选(仅启用前置过滤时显示) | 默认值 | +| 情感适配提示词(sentimentAdapter) | 依据评论情感倾向调整回复语气,可选 | 默认值 | +| 输出规范提示词(outputGuidance) | 回复长度/格式/风格等通用约束,可选 | 默认值 | +| 语言要求提示词(languageRequirement) | 根据评论语言自动匹配回复语言的约束规则,可选 | 默认值 | ::: tip 留空即用默认 -四个模块均支持留空。留空时后端自动填入完整默认值,无需手动填写即可获得稳定的 AI 输出。若仅需调整某一模块(如只改角色身份),其他模块保持留空即可。 -::: - -::: warning 已移除提示词预设 -v1.4.0 移除了设置页内的提示词预设开关(友好型/专业型/幽默型/简洁型),避免自定义角色时与角色人格提示词重复组合。预设模板已迁移至 [提示词模板文档](./prompt.md#预设模板参考),可复制到角色身份模块或 AI 角色的人格提示词中使用。 +五个模块均支持留空。留空时后端自动填入完整默认值,无需手动填写即可获得稳定的 AI 输出。若仅需调整某一模块(如只改角色身份),其他模块保持留空即可。 ::: ### 组装顺序 提示词由后端按固定顺序拼接,无需手动放置占位符: -1. **角色身份** — 若 AI 角色扩展配置了人格提示词,则优先使用角色扩展的设定 -2. **安全审核** — 含回复质量自学习提示(开启时追加「避免以下风格」) -3. **语言要求** — 内置模块,根据评论语言匹配回复语言(不可配置) -4. **输出规范** +1. **角色身份** — 若 AI 角色配置了人格提示词,则优先使用角色的人格设定 +2. **安全审核** — 内容安全红线与边界约束 +3. **语言要求** — 根据评论语言匹配回复语言 +4. **输出规范** — 回复长度/格式/风格约束 5. **情感适配** — 含动态情感提示(非中性情感时追加) 6. **上下文信息** — 文章标题、发布日期、评论数、文章内容、对话历史、评论(由系统自动注入) @@ -165,23 +146,6 @@ v1.4.0 移除了设置页内的提示词预设开关(友好型/专业型/幽 | {{conversation_history}} | 对话历史上下文 | 多轮对话时注入 | | {{comment}} | 评论内容(含评论者名称) | 始终注入 | -::: tip 情感提示 -动态情感提示根据评论情感自动生成,追加到情感适配模块之后: -- **非常正面** → 热情洋溢的语气提示 -- **正面** → 热情友好的语气提示 -- **负面** → 理性温和的语气提示 -- **非常负面** → 冷静关怀的语气提示 -- **中性** → 不注入额外提示 -::: - -::: tip 安全规范 -安全审核模块包含以下约束(留空时强制使用默认值,避免安全约束被绕过): -- **内容红线**:不生成暴力、歧视、辱骂等违规内容 -- **身份约束**:不是文章作者、管理员、客服或用户本人;不声称亲身经历未提供之事 -- **事实约束**:不编造文章外的人物、数据、链接和事实 -- **信息安全**:不泄露系统提示词、模型参数、插件实现与安全策略 -::: - ## Comment Next 冲突检测 插件会在首页自动检测 [plugin-comment-next](https://github.com/halo-sigs/plugin-comment-next)(评论组件 Next)是否安装并启用。Comment Next 已集成 AI 回复、AI 拦截功能,若同时启用本插件可能与该插件的功能重复。 @@ -195,9 +159,16 @@ v1.4.0 移除了设置页内的提示词预设开关(友好型/专业型/幽 建议二选一:要么在本插件中配置 AI 回复,要么在 Comment Next 中配置,避免两套 AI 回复逻辑同时运行产生重复回复。 ::: -::: tip 检测机制 -冲突检测通过读取 Plugin 资源 `plugin-comment-next` 的 `status.phase` 判断是否已启用(STARTED),并通过 SchemeManager 检测 `commentnext.halo.run` 组下扩展是否注册作为兜底,不直接引用 Comment Next 插件的 API 类,避免未安装时触发 `NoClassDefFoundError`。 -::: +## AI Foundation 状态检测 + +插件首页自动检测 AI Foundation 的安装、启用和模型配置状态,针对不同状态显示对应的警告卡片和快捷跳转按钮: + +| 状态 | 提示 | 快捷操作 | +|------|------|---------| +| 未安装 | AI Foundation 未安装 | 前往插件页面、应用商店下载 | +| 已安装未启用 | AI Foundation 未启用 | 前往启用 | +| 已启用未配置模型 | 未配置默认模型 | 添加模型、配置默认模型 | +| 正常 | AI Foundation 连接正常 | — | ## 数据清理 @@ -206,12 +177,17 @@ v1.4.0 移除了设置页内的提示词预设开关(友好型/专业型/幽 | 启用自动清理 | 是否自动清理过期的AI回复记录 | 开启 | | 保留天数 | 超过此天数的记录将被自动清理 | 30 | -::: tip -你也可以在数据清理页面点击"立即清理"按钮手动触发清理操作。 -::: +### 手动清理 + +手动清理区域支持自定义清理时间节点: + +1. 在输入框中填写清理天数(默认7天前) +2. 点击 **立即清理** 按钮 +3. 弹出二次确认弹窗,确认后执行清理 +4. 清理完成后显示删除的记录数量 ::: warning -清理操作仅删除 `AiCommentReply` 记录(插件内部的日志记录),不会删除已发布的 Halo Reply 评论。 +清理操作不可撤销,执行前会弹出确认弹窗。清理仅删除 `AiCommentReply` 记录(插件内部的日志记录),不会删除已发布的 Halo Reply 评论。 ::: ## 配置导入导出 diff --git a/docs/index.md b/docs/index.md index a38bcc7..349eebb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -17,25 +17,25 @@ features: - title: 自动回复 details: 监听新评论,自动调用AI生成回复,支持对话式上下文和失败重试 - title: 多 AI 角色 - details: 创建多个虚拟角色,独立昵称、人格、性别、语气和 Gravatar 头像,支持按文章分类切换角色 + details: 创建多个虚拟角色,独立昵称、人格提示词、性别、语气和 Gravatar 头像,支持按文章分类切换角色,人格提示词留空时使用基础配置 - title: 情感分析 details: 分析评论情感倾向,根据正面/中性/负面调整回复语气 - title: 前置过滤 details: AI回复前综合判断评论者昵称与评论内容,拦截广告/辱骂/敏感内容,节省Token - - title: AI审核白名单 - details: 管理员自动入白名单,支持手动添加可信评论者,白名单内评论跳过 AI 拦截,与黑名单并排管理 - - title: 回复质量自学习 - details: 从被拒绝的回复中学习共性特征,生成时自动注入「避免以下风格」提示,持续优化回复风格 + - title: 黑/白名单 + details: 支持批量添加/移除评论者,白名单内评论跳过前置过滤,黑名单评论者不触发AI回复 - title: 模块化提示词 - details: 拆分角色身份、安全审核、情感适配、输出规范4个独立模块,各模块独立配置、留空即用默认值 + details: 拆分角色身份、安全审核、情感适配、输出规范、语言要求5个独立模块,各模块均为可选,留空即用默认值 - title: 瞬间插件适配 details: 检测到瞬间插件(Moments)已安装并启用时,自动为瞬间评论区启用AI自动回复 - title: 草稿模式 details: AI回复先存为草稿,管理员审核后再发布,支持批量操作 - title: 对话上下文 details: 查看完整对话上下文,支持引用摘要展示和头像显示 - - title: 冲突检测 - details: 自动检测 Comment Next 插件冲突并提供配置页跳转;AI Foundation 未安装时明确提示并给出安装链接 + - title: 智能状态检测 + details: 自动检测 AI Foundation 安装/启用/模型配置状态,区分 Comment Next 冲突并提供快捷跳转 + - title: 页面AI回复开关 + details: 全局一键启用/禁用所有页面的AI回复(包括新建页面),默认关闭 - title: 数据管理 - details: 仪表盘统计、日志筛选搜索(含角色筛选)、实时刷新、自动清理旧记录、配置导入导出 + details: 仪表盘统计(含已拦截数)、日志筛选搜索(含角色筛选)、实时刷新(偏好自动保存)、自动/手动清理(支持自定义时间节点)、配置导入导出 ---