# AI回评 / Comment AI Autopilot 基于 AI 的 Halo 博客评论自动回复插件,支持多 AI 角色、自审核、自动发布和对话式连续回复。 > **当前版本**: v1.0.0-beta.2 ## 功能特性 - **多 AI 角色** — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词和 Gravatar 头像,可为不同文章指定不同角色 - **自动回复** — 监听新评论,自动调用 AI 生成回复,支持多轮对话上下文 - **多语言适配** — 根据评论语言自动用对应语言回复 - **情感分析** — 分析评论情感倾向(正面/中性/负面),根据情感调整回复语气 - **草稿模式** — AI 回复先存为草稿,管理员审核后再发布,支持批量操作 - **失败重试** — AI 生成失败时自动重试,指数退避策略 - **对话轮次限制** — 同一评论线程中限制 AI 最多回复轮次,防止无限对话 - **速率限制** — 每分钟最大 AI 回复数量,防止批量评论消耗过多额度 - **文章/页面级开关** — 在文章编辑器中直接控制是否启用 AI 回复,文章默认开启,页面默认关闭 - **评论者黑名单** — 支持按名称、邮箱和正则表达式屏蔽指定评论者,可从评论列表选择 - **手动触发** — 在评论管理页面对历史评论手动触发 AI 回复 - **安全审核** — AI 生成的内容经过安全审核,不合规内容自动拒绝 - **Prompt 模板** — 支持自定义 Prompt 模板,提供多种模板变量(文章标题、发布日期、评论数等) - **Prompt 预设** — 内置友好型、专业型、幽默型、简洁型预设风格,可多选组合 - **仪表盘统计** — 显示回复数、情感分布、每日回复趋势等图表,支持时间范围切换 - **插件健康检查** — 实时检测 AI Foundation 连接状态和模型可用性 - **日志筛选** — 按状态、情感筛选,关键词搜索 - **数据清理** — 自动清理超过指定天数的旧记录 - **AI Foundation 集成** — 必须安装 Halo AI Foundation 插件,使用其提供的 AI 模型能力 ## 前置要求 - Halo 2.25+ - AI Foundation 插件(必须) ## 安装 1. 前往 [Releases](https://github.com/sunny-335/plugin-comment-ai-autopilot/releases) 下载最新的 `.jar` 文件 2. 登录 Halo 管理后台 3. 进入 **插件** → **已安装** → 点击右上角 **安装** 按钮 4. 选择下载的 `.jar` 文件上传 5. 安装完成后启用插件 ## 从源码构建 ```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) ## 更新日志 ### v1.0.0-beta.2 **改进** - 通过 Halo 官方推荐的 `ExtensionGetter` 获取 AI Foundation 的 `AiModelService`,替换原先的跨 ClassLoader 反射调用方式 - 在 `plugin.yaml` 中声明可选插件依赖 `ai-foundation?: "*"`,建立正确的插件依赖关系 - 新增 `store.halo.run/recommended-apps` 注解,安装后可在应用市场推荐安装 AI Foundation 插件 - 情感分析和内容审核改用 AI Foundation 结构化输出(`OutputSpec.choice`),分类更可靠 - AI 调用改用 `GenerateTextRequest` 并设置 `maxRetries=2`,由 SDK 自动重试瞬时错误 - AI 对话续接时自动获取之前的回复历史并注入到 Prompt 中,AI 能更好地理解对话上下文 - 优化 AI 自审核评分机制:改为两阶段评估(安全检查 + 质量评分 1-5 分),评分映射到 0-100 分,替代原先的二值评分 - 精简仪表盘:移除情感分布、近7日回复趋势、平均审核评分三个卡片,界面更简洁 - 优化设置页面布局:按钮统一排版并添加图标,侧边栏新增"未保存"状态指示器 - 优化日志页面评分显示:评分增加等级标签(优秀/良好/一般/较差) **Bug 修复** - 修复 RateLimitService 清理线程在插件停止时未关闭导致线程泄漏 - 修复内容审核提示词要求"重新生成"但代码未使用重新生成内容的问题 ### v1.0.0-beta.1 **新功能** - AI Foundation 反射集成:通过运行时反射调用 AI Foundation 插件的 `AiModelService`,无需 `pluginDependencies`,彻底解决跨 ClassLoader 类加载问题 - 草稿模式:关闭"自动发布"后,AI 回复将保存为草稿,需站长审核后才发布 - 多 AI 角色支持:支持配置多个 AI 虚拟角色,每个角色有独立的提示词、头像和模型 - 提示词预设:内置多种回复风格预设(专业型、幽默型、简洁型等),可自由组合 - 每日回复趋势图:首页新增每日回复数量柱状图,支持 7 天/30 天/全部切换 - 对话历史查看:支持查看 AI 回复的完整对话上下文 **Bug 修复** - 修复草稿模式下审批失败("AI回复已存在,无法重复发布")的问题 - 修复批量审批时同样的去重检查冲突问题 - 修复 AI Foundation 不可用的问题(`PluginManager` 无法通过 Spring 依赖注入获取) - 修复 `DefaultSpringPlugin` 包级私有类反射访问权限问题 - 修复 CI 构建失败(`gradlew` 缺少执行权限) **改进** - 审批逻辑优化:先查找已有 Reply 扩展再决定创建或更新 - 移除不必要的 `AiFoundationConfiguration` 配置类 - 前端 UI 优化:移除编辑功能、简化角色排序逻辑、清理无用代码 ### v0.0.3 - 增强插件可靠性与可用性 - 多 AI 角色支持 - 草稿模式初步实现 - 文档全面更新 ## 许可证 [GPL-3.0](https://github.com/sunny-335/plugin-comment-ai-autopilot/blob/main/LICENSE) © 暖心向阳335