# AI回评 / Comment AI Autopilot

基于 AI 的 Halo 博客评论自动回复插件，支持多 AI 角色、合规检测、自审核、自动发布和对话式连续回复。

## 功能特性

- **多 AI 角色** — 支持创建多个 AI 角色，每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像，可为不同文章分类指定不同角色，人格提示词留空时使用基础配置
- **唤醒词** — 评论以唤醒词开头可唤醒指定角色回复，支持自定义唤醒词，可在未启用AI回评的页面使用唤醒词召唤AI
- **自动回复** — 监听新评论，自动调用 AI 生成回复，支持多轮对话上下文
- **多语言适配** — 根据评论语言自动用对应语言回复，语言要求可自定义
- **情感分析** — 分析评论情感倾向（非常正面/正面/中性/负面/非常负面），根据情感调整回复语气
- **前置过滤（合规检测）** — AI 回复前对评论进行合规性分类，自动拦截广告/辱骂攻击/敏感内容/乱码，违规评论停止生成 AI 回复以节省 Token，可选自动将违规评论设为待审核状态
- **误报反馈** — 被误拦截的评论可进行误报反馈，支持"AI回复"和"仅通过"两种处理方式，"仅通过"后可随时补触发 AI 回复
- **草稿模式** — AI 回复先存为草稿，管理员审核后再发布，支持批量通过/拒绝/删除
- **失败重试** — AI 生成失败时自动重试，最大重试次数可配置（0-10次，默认3次）
- **对话轮次限制** — 同一评论线程中限制 AI 最多回复轮次，0为不限制，默认10轮
- **速率限制** — 每小时最大 AI 回复数量，0为不限制，防止批量评论消耗过多额度
- **文章/页面级开关** — 在文章编辑器中直接控制是否启用 AI 回复，支持全局页面开关一键启用/禁用所有页面（包括新建页面），文章默认开启，页面默认关闭
- **评论者黑/白名单** — 支持按名称、邮箱屏蔽/信任指定评论者，支持批量添加和批量移除，站长不可手动移除
- **手动触发** — 在评论管理页面对历史评论手动触发 AI 回复
- **安全审核** — 安全检查与违规内容拦截
- **Prompt 模板** — 支持分模块自定义 Prompt 模板（角色身份/安全审核/情感适配/输出规范/语言要求），提供多种模板变量（文章标题、发布日期、评论内容、对话历史等）
- **插件健康检查** — 实时检测 AI Foundation 安装状态、启用状态、模型配置状态，针对不同异常状态提供快捷跳转按钮
- **日志筛选与实时刷新** — 按状态、情感、角色筛选，关键词搜索，支持查看拦截原因和分类标签；实时刷新偏好自动保存，默认开启10秒间隔
- **数据清理** — 自动清理超过指定天数的旧记录，手动清理支持自定义时间节点（默认清理7天前的记录）
- **Comment Next 兼容** — 检测到 Comment Next 插件时显示提醒，避免冲突
- **AI Foundation 集成** — 通过 Halo 官方推荐的 `ExtensionGetter` 获取 AI 服务，需安装 AI Foundation 插件

## 前置要求

- Halo 2.25+
- AI Foundation 插件（必须）

## 安装

### 应用商店安装

进入 **插件** → **安装** → 应用市场搜索 **AI回评** → 安装，或前往 [Halo 应用商店](https://www.halo.run/store/apps/app-mo5tivjt) 一键安装。

### 手动安装

1. 前往 [Releases](https://github.com/sunny-335/plugin-comment-ai-autopilot/releases) 下载最新的 `.jar` 文件
2. 登录 Halo 管理后台
3. 进入 **插件** → **安装** → **本地上传**
4. 选择下载的 `.jar` 文件上传
5. 安装完成后启用插件

## 首次使用配置指南

安装并启用插件后，请按以下步骤完成初始配置：

### 第一步：安装 AI Foundation 插件

AI回评依赖 [AI Foundation](https://www.halo.run/store/apps/app-acslk9nu) 插件提供 AI 能力。请确保：
1. 已在 **插件** 页面安装并启用了 AI Foundation 插件
2. 在 AI Foundation 中添加了至少一个 AI 模型（如 OpenAI、Ollama、DeepSeek 等）
3. 在 **AI Foundation → 默认模型** 页面（`/console/ai-foundation/defaults`）设置了默认模型

> 💡 插件首页会自动检测 AI Foundation 状态，如未安装/未启用/未配置模型，将显示对应的提示和快捷跳转按钮。

### 第二步：配置基础设置

进入 **评论 → AI回评 → 设置**，在"基本设置"面板中：
- **自动回复**：默认开启，关闭则需手动触发回复
- **自动发布**：开启后AI回复直接发布，关闭则进入草稿待审核
- **最大重试次数**：默认3次（0-10），AI生成失败时的重试次数
- **最大对话轮次**：默认10轮，0为不限制
- **速率限制（每小时）**：默认0（不限制），防止批量评论消耗过多额度
- **启用页面AI回复**：默认关闭，开启后所有独立页面（非文章）默认启用AI回复
- **前置过滤（合规检测）**：建议开启，自动拦截广告/辱骂/敏感内容
- **白名单启用**：白名单内的评论者跳过前置过滤

### 第三步：配置提示词

切换到"提示词设置"面板：
- **角色身份提示词（personaIdentity）**：定义 AI 的基础身份和回复风格，这是全局默认角色
- 其他提示词模块（安全审核/情感适配/输出规范/语言要求）可按需调整，留空使用默认值

### 第四步：（可选）创建 AI 角色

在"AI角色管理"面板点击"添加角色"，可创建多个AI角色：
- 为角色设置昵称、邮箱（用于Gravatar头像）、性别、语气风格
- **人格提示词**：独立角色的人格设定，留空则使用基础配置中的角色身份提示词
- **唤醒词**：评论以唤醒词开头可直接召唤该角色回复
- 可为不同文章分类指定不同角色

### 第五步：（可选）配置黑/白名单

在"基本设置"面板的评论者黑/白名单区域：
- **黑名单**：被屏蔽的评论者不会触发AI回复，支持批量添加/移除
- **白名单**：信任的评论者优先处理并跳过前置过滤
- 点击"添加评论者"可从历史评论者中多选批量添加，也支持手动输入名称或邮箱

### 第六步：开始使用

配置完成后：
- 新评论会自动触发AI回复（如果文章/页面启用了AI回评）
- 在 **评论 → AI回评 → 回复日志** 中查看所有AI回复记录和状态
- 可在日志页面手动触发历史评论的AI回复
- 如需临时关闭，在"基本设置"中关闭"自动回复"开关即可

> 💡 文章级开关：编辑文章时，右侧设置面板中有"AI回评"开关，可单独控制每篇文章是否启用AI回复。

## 从源码构建

```bash
# 克隆仓库
git clone https://github.com/sunny-335/plugin-comment-ai-autopilot.git
cd plugin-comment-ai-autopilot

# 构建
./gradlew build -x test

# 构建产物位于 build/libs/ 目录
```

## 开发

```bash
# 启用插件开发服务器
./gradlew haloServer

# 开发前端
cd ui
pnpm install
pnpm dev
```

## 文档

完整文档及更新日志请访问 [AI回评文档站](https://nxxy335.top/comment-ai-autopilot)

## 许可证

[GPL-3.0](https://github.com/sunny-335/plugin-comment-ai-autopilot/blob/main/LICENSE) © 暖心向阳335
