feat: v1.0.0 - 唤醒词、性别配置、身份强化、移动端适配、Bug修复

This commit is contained in:
sunny-335
2026-06-18 22:40:00 +08:00
parent a9dd1c14bc
commit 2c88ad6fb9
22 changed files with 787 additions and 106 deletions
+19 -1
View File
@@ -1,9 +1,16 @@
# 更新日志
## v1.0.0-b26cea
## v1.0.0
> 2026-06-18
### 新功能
- **唤醒词**:评论以唤醒词开头可唤醒指定角色回复,支持自定义唤醒词,可在未启用AI回评的页面使用唤醒词召唤AI,二级评论同样支持
- **性别配置**:AI角色支持性别设置(男/女),AI回复时会保持对应性别身份
- **语气风格**:支持中性语气复选框,勾选后使用中性语气,取消勾选则跟随性别语气(女性温柔细腻/男性沉稳理性)
- **身份提示词强化**:角色身份信息前置到Prompt最开头(【核心身份】),安全规范中增加身份约束,确保AI始终保持角色身份
### 改进
- **优化情感分析系统**:从 3 级分类(正面/中性/负面)升级为 5 级分类(非常正面/正面/中性/负面/非常负面),情感判断更精细
@@ -11,12 +18,23 @@
- **优化评分显示**:评分数字与等级标签之间添加间距,等级标签增加底色背景(优秀/良好/一般/较差)
- **优化状态标签**:通过状态、发布状态、情感标签统一使用带底色的标签样式
- **支持页面链接显示**:日志中新增独立页面(SinglePage)链接显示,之前仅支持文章链接
- **移动端适配**:仪表盘、配置、日志页面全面适配移动端
- **ObjectMapper 统一注入**FilterService 和 PromptBuilder 中的 `new ObjectMapper()` 改为 Spring 构造函数注入
- **服务端过滤优化**:日志列表查询改用 `Queries.equal()` 服务端过滤 status/sentiment,减少内存过滤开销
- **新增索引**:为 AiCommentReply 扩展添加 `spec.sentiment``spec.published``spec.postKind` 索引
- **新增 postKind 字段**:区分关联内容类型(Post/SinglePage),支持页面评论的链接生成
- **PromptBuilder 情感提示**:适配 5 级情感分类,新增 VERY_POSITIVE 和 VERY_NEGATIVE 的语气提示
### Bug 修复
- **修复 ObjectMapper Bean 不存在**Halo 插件上下文中没有自动注册 ObjectMapper Bean,创建 ObjectMapperConfiguration 手动注册
- **修复 AI 回复仍说没有性别**:将身份信息前置到 Prompt 最开头,安全规范中删除"作为AI助手"措辞,新增身份约束
- **修复唤醒词无法唤醒**:评论内容提取时对 raw 也做 HTML stripJsoup.clean),所有内容做 trim()wakeWord 也做 trim()
- **修复二级评论唤醒词检查位置错误**:唤醒词检查提前到 isReplyToAi 判断之前
- **修复 SinglePage 内容获取 404**PostContentService 不能用于 SinglePage,改用 SinglePage.getStatus().getExcerpt()
- **修复 Post/SinglePage 404 容错**fetch 添加 onErrorResume 降级为空上下文继续处理
- **修复 Sort 参数 null 警告**listAll 调用改为 Sort.unsorted()
---
## v1.0.0-beta.2
+26
View File
@@ -21,6 +21,32 @@
插件启动时间之前的评论不会触发自动回复,避免安装插件后对大量历史评论批量回复。
## 唤醒词机制
唤醒词允许用户在评论中通过特定词语唤醒指定AI角色回复,即使该页面未启用AI回评。
### 工作方式
1. 用户发表以唤醒词开头的评论(如"小回小回你好")
2. 插件检测到唤醒词匹配,自动唤醒对应角色
3. 唤醒词后的内容作为实际评论内容传递给AI
4. AI生成回复时自动获取上下文(文章内容、对话历史等)
### 唤醒词特点
- **跨页面唤醒**:在未启用AI回评的页面也能使用唤醒词召唤AI
- **二级评论支持**:回复中同样可以使用唤醒词
- **独立唤醒**:每个角色有独立的唤醒词,可以唤醒不同角色
- **绕过限制**:唤醒词触发时绕过页面级启用检查和"必须是回复给AI"的检查,但仍检查黑名单
### 配置唤醒词
**AI回评****插件设置****AI角色设置** 中,为每个角色配置唤醒词。唤醒词留空则不启用该角色的唤醒功能。
::: tip
唤醒词建议设置为容易记忆且不易与正常评论混淆的词语。
:::
## 对话式回复
当评论者回复AI的评论时,插件会自动提取对话上下文(最近5条回复),让AI的回复更连贯自然。
+7 -7
View File
@@ -7,19 +7,19 @@
## 安装
### 方式一:从 Release 下载
### 方式一:应用商店安装
进入 **插件****安装** → 应用市场搜索 **AI回评** → 安装,或前往 [Halo 应用商店](https://www.halo.run/store/apps/app-mo5tivjt) 一键安装。
### 方式二:从 Release 下载
1. 前往 [GitHub Releases](https://github.com/sunny-335/plugin-comment-ai-autopilot/releases) 下载最新的 `.jar` 文件
2. 登录 Halo 管理后台
3. 进入 **插件****安装**点击右上角 **安装** 按钮
3. 进入 **插件****安装****本地上传**
4. 选择下载的 `.jar` 文件上传
5. 安装完成后启用插件
::: tip 推荐安装
安装本插件后,应用市场会推荐安装 AI Foundation 插件(本插件的必要依赖)。
:::
### 方式二:从源码构建
### 方式三:从源码构建
```bash
# 克隆仓库
+12 -9
View File
@@ -5,7 +5,9 @@ AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够
## 核心功能
- **自动回复** — 监听新评论,自动调用AI生成回复,支持多轮对话上下文
- **多 AI 角色** — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词和 Gravatar 头像,可为不同文章指定不同角色
- **多 AI 角色** — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像,可为不同文章指定不同角色
- **唤醒词** — 评论以唤醒词开头可唤醒指定角色回复,支持自定义唤醒词,可在未启用AI回评的页面使用唤醒词召唤AI
- **性别与语气** — AI角色支持性别配置(男/女)和中性语气风格,AI回复时保持对应性别身份
- **多语言适配** — 根据评论语言自动用对应语言回复
- **情感分析** — 分析评论情感倾向(非常正面/正面/中性/负面/非常负面),根据情感调整回复语气
- **草稿模式** — AI回复先存为草稿,管理员审核后再发布
@@ -25,19 +27,20 @@ AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够
## 工作流程
```
新评论 → 过滤检查 → 情感分析 → 构建Prompt → AI生成 → 安全审核 → 发布/草稿
新评论 → 唤醒词检查 → 过滤检查 → 情感分析 → 构建Prompt → AI生成 → 安全审核 → 发布/草稿
↓ (失败)
重试 → ... → 最终失败
```
1. **新评论到达** — Reconciler 监听到新评论创建事件
2. **过滤检查** — 检查文章/页面是否启用AI回复、评论是否在黑名单中
3. **情感分析**调用AI分析评论情感倾向
4. **构建Prompt** — 结合AI角色人格、情感提示、文章内容、评论上下文构建Prompt
5. **AI生成** — 调用AI模型生成回复内容
6. **安全审核**对生成内容进行两阶段审核(安全检查 + 质量评分 1-5 分映射到 0-100)
7. **发布/草稿**根据设置自动发布或存为草稿等待审核
8. **重试**如果AI生成失败,系统会自动重试(最多 maxRetryCount 次),每次重试间隔递增
2. **唤醒词检查** — 检查评论是否以某个角色的唤醒词开头,匹配则唤醒对应角色
3. **过滤检查**检查文章/页面是否启用AI回复、评论者是否在黑名单中(唤醒词触发时绕过页面级启用检查)
4. **情感分析** — 调用AI分析评论情感倾向
5. **构建Prompt** — 结合AI角色人格、情感提示、文章内容、评论上下文构建Prompt
6. **AI生成**调用AI模型生成回复内容
7. **安全审核**对生成内容进行两阶段审核(安全检查 + 质量评分 1-5 分映射到 0-100)
8. **发布/草稿**根据设置自动发布或存为草稿等待审核
9. **重试** — 如果AI生成失败,系统会自动重试(最多 maxRetryCount 次),每次重试间隔递增
## 前置要求
+23 -1
View File
@@ -1,6 +1,6 @@
# AI角色
AI角色定义了回复评论的虚拟身份,包括昵称、人格和头像。
AI角色定义了回复评论的虚拟身份,包括昵称、人格、性别、语气风格和头像。
## 角色配置
@@ -8,6 +8,28 @@ AI角色定义了回复评论的虚拟身份,包括昵称、人格和头像。
AI回复者的显示名称,默认为「小回」。修改后新回复将使用新昵称,已有回复不受影响。
### 性别与语气
每个角色可以设置性别(男/女),AI回复时会保持对应性别身份。语气风格通过"中性语气"复选框控制:
- **勾选中性语气**:AI使用中性语气回复
- **取消勾选**:AI根据性别使用对应语气风格(女性→温柔细腻,男性→沉稳理性)
默认角色「小回」的性别为女,勾选中性语气。
### 唤醒词
评论以唤醒词开头可唤醒该角色回复。唤醒词功能的特点:
- **跨页面唤醒**:在未启用AI回评的页面,使用唤醒词也能召唤AI回复
- **二级评论支持**:回复中同样可以使用唤醒词唤醒指定角色
- **独立唤醒**:每个角色有独立的唤醒词,可以唤醒不同角色
- **留空不启用**:唤醒词留空则不启用该角色的唤醒功能
::: tip
唤醒词匹配时,插件会自动去除评论中的HTML标签并去除首尾空格,确保匹配准确。
:::
### 人格提示词
人格提示词定义了AI角色的性格和回复风格,是影响回复质量的关键配置。
+5 -1
View File
@@ -30,11 +30,13 @@
## AI角色设置
AI角色定义了回复评论的虚拟身份。支持创建多个角色,每个角色有独立的昵称、人格提示词和 Gravatar 头像,可指定一个为默认角色。
AI角色定义了回复评论的虚拟身份。支持创建多个角色,每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像,可指定一个为默认角色。
| 配置项 | 说明 | 默认值 |
|--------|------|--------|
| 角色昵称 | AI回复者的显示名称 | 小回 |
| 性别与语气 | 角色性别(男/女)+ 中性语气复选框(勾选=中性语气,取消勾选=跟随性别语气) | 女 + 中性语气 |
| 唤醒词 | 评论以此词开头则唤醒该角色回复,留空不启用 | 空 |
| 人格提示词 | 定义AI角色的人格和回复风格 | 见下方 |
| 邮箱 | 用于 Gravatar 头像服务展示头像 | 空 |
| 设为默认 | 将该角色设为默认角色 | 第一个角色默认 |
@@ -90,8 +92,10 @@ AI角色定义了回复评论的虚拟身份。支持创建多个角色,每个
::: tip 情感提示
情感提示由插件根据情感分析结果自动追加到 Prompt 末尾,不需要在模板中手动添加:
- **非常正面** → 追加热情洋溢的语气提示
- **正面** → 追加热情友好的语气提示
- **负面** → 追加理性温和的语气提示
- **非常负面** → 追加冷静关怀的语气提示
- **中性** → 不追加额外提示
:::