1a2732fe19c2902b015d6e121e52d0b8304f9784
* feat: 对话气泡增加引用摘要模块,解决多用户混杂交谈上下文不清晰问题 - 后端 ConversationMessage Record 新增 quoteOwner/quoteContent 字段 - 后端 getConversation 方法重写,构建 Reply 映射字典溯源引用关系 - 前端 ConversationMessage 类型定义新增 quoteOwner/quoteContent - 前端新增 truncateQuote 截断方法(复用 stripHtml,限30字符) - 前端对话气泡模板渲染灰色引用条(bg-black/5 + border-l-2) * chore: 补充 .gitignore 规则(*.jar、ui/dist 等) * feat: Markdown 引用注入法 - AI回复自动拼接引用块(主题无关通用方案) - 后端 CommentReplyPublisher.doPublish 重写,发布前查询被回复对象并拼接 Markdown Blockquote - 新增 buildQuoteMarkdown 辅助方法,Jsoup 清除 HTML 后截断 40 字符生成引用 - 前端 LogsView 恢复简洁气泡模板,移除 quoteOwner/quoteContent 前端引用逻辑 - renderContent 新增换行符处理,确保 Markdown 引用块正确渲染 * style: 重写 LogsView.vue - 纯 Tailwind 标签替代 Emoji,移除 300+ 行自定义 CSS - 状态/情感标签改用纯色 Tailwind 背景标签,去除所有 Emoji - 删除 300+ 行自定义 CSS,全部替换为 Tailwind 原子类 - 对话弹窗 Markdown 引用块正则提取,去除气泡和机器人 Emoji - 优化移动端响应式布局,解决排版错位问题 * style: 重写 SettingsView.vue - 纯 Tailwind 栅格布局,移除自定义 CSS - 标签导航改用 Tailwind flex + overflow-x-auto - 所有设置面板(basic/persona/model/prompt/cleanup)改用 Tailwind 原子类 - 开关改用 peer-checked 伪类实现,移除自定义 toggle CSS - 滑块刻度改用 flex justify-between 实现 - 侧边栏 lg:sticky lg:top-24,移动端自然折叠到底部 - 弹窗(评论者选择/角色编辑)改用 fixed inset-0 + backdrop-blur - 删除 600+ 行自定义 CSS * refactor: 返璞归真 - 剥离 Markdown 注入,利用 Halo 原生层级回复 - 后端 CommentReplyPublisher 删除 buildQuoteMarkdown 和 Markdown 拼接逻辑 - AI 回复直接存入纯净文本,由 Halo 原生 quoteReply 字段渲染前台层级关系 - 前端 ConversationMessage 恢复 quoteOwner/quoteContent 字段 - 前端对话弹窗添加原生 Tailwind 引用摘要框(灰色 border-l-[3px]) - 简化 renderContent,删除 Markdown 引用正则匹配 * chore: 版本号升级至 1.0.1,强制刷新 Halo 前端缓存 - plugin.yaml version: 1.0.0 -> 1.0.1 - build.gradle version: 1.0.0 -> 1.0.1 - LogsView truncateQuote/renderContent 增加历史 Markdown 引用文本清理正则 - 防止旧版测试数据 (💬 **@某人**:) 在界面套娃显示 * style: 彻底重写 LogsView & SettingsView - 原生 Scoped CSS 替代 Tailwind - LogsView.vue: 移除所有 Tailwind 类,改用 <style scoped> 原生 CSS - SettingsView.vue: 移除所有 Tailwind 类,改用 <style scoped> 原生 CSS - 标签配色、气泡样式、引用框全部使用纯 CSS 实现,避免 Halo 主题冲突 - 版本号升级至 1.0.2 强制刷新前端缓存 * feat: SettingsView 完整功能版 - AI角色/数据清理/导入导出 - 5个设置面板:基本设置、AI角色、模型设置、Prompt、数据清理 - AI角色:CRUD、Gravatar头像、性别/唤醒词/默认角色 - 数据清理:自动清理开关、保留天数滑块、手动清理 - 导入导出:JSON配置导入导出 - 评论者黑名单弹窗选择 - 全部使用原生 Scoped CSS * chore: 版本号升级至 1.0.3 * v1.0.4: 美化 LogsView 和 SettingsView UI,优化引用框样式与移动端适配 --------- Co-authored-by: bbb-lsy07 <bbb-lsy07@users.noreply.github.com>
AI回评 / Comment AI Autopilot
基于 AI 的 Halo 博客评论自动回复插件,支持多 AI 角色、自审核、自动发布和对话式连续回复。
功能特性
- 多 AI 角色 — 支持创建多个 AI 角色,每个角色有独立的昵称、人格提示词、性别、语气风格和 Gravatar 头像,可为不同文章指定不同角色
- 唤醒词 — 评论以唤醒词开头可唤醒指定角色回复,支持自定义唤醒词,可在未启用AI回评的页面使用唤醒词召唤AI
- 自动回复 — 监听新评论,自动调用 AI 生成回复,支持多轮对话上下文
- 多语言适配 — 根据评论语言自动用对应语言回复
- 情感分析 — 分析评论情感倾向(非常正面/正面/中性/负面/非常负面),根据情感调整回复语气
- 草稿模式 — AI 回复先存为草稿,管理员审核后再发布,支持批量操作
- 失败重试 — AI 生成失败时自动重试,指数退避策略
- 对话轮次限制 — 同一评论线程中限制 AI 最多回复轮次,防止无限对话
- 速率限制 — 每分钟最大 AI 回复数量,防止批量评论消耗过多额度
- 文章/页面级开关 — 在文章编辑器中直接控制是否启用 AI 回复,文章默认开启,页面默认关闭
- 评论者黑名单 — 支持按名称、邮箱和正则表达式屏蔽指定评论者,可从评论列表选择
- 手动触发 — 在评论管理页面对历史评论手动触发 AI 回复
- 两阶段安全审核 — 安全检查 + 质量评分(1-5 分映射到 0-100 分),不合规内容自动拒绝
- Prompt 模板 — 支持自定义 Prompt 模板,提供多种模板变量(文章标题、发布日期、评论数、对话历史等)
- Prompt 预设 — 内置友好型、专业型、幽默型、简洁型预设风格,可多选组合
- 插件健康检查 — 实时检测 AI Foundation 连接状态和模型可用性
- 日志筛选 — 按状态、情感筛选,关键词搜索
- 数据清理 — 自动清理超过指定天数的旧记录
- AI Foundation 集成 — 通过 Halo 官方推荐的
ExtensionGetter获取 AI 服务,需安装 AI Foundation 插件
前置要求
- Halo 2.25+
- AI Foundation 插件(必须)
安装
应用商店安装
进入 插件 → 安装 → 应用市场搜索 AI回评 → 安装,或前往 Halo 应用商店 一键安装。
手动安装
- 前往 Releases 下载最新的
.jar文件 - 登录 Halo 管理后台
- 进入 插件 → 安装 → 本地上传
- 选择下载的
.jar文件上传 - 安装完成后启用插件
从源码构建
# 克隆仓库
git clone https://github.com/sunny-335/plugin-comment-ai-autopilot.git
cd plugin-comment-ai-autopilot
# 构建
./gradlew build -x test
# 构建产物位于 build/libs/ 目录
开发
# 启用插件开发服务器
./gradlew haloServer
# 开发前端
cd ui
pnpm install
pnpm dev
文档
完整文档及更新日志请访问 AI回评文档站
许可证
GPL-3.0 © 暖心向阳335
Description
AI回评(Comment AI Autopilot)是一个 Halo 博客系统的插件,能够自动为博客评论生成AI回复。
https://nxxy335.top/comment-ai-autopilot
2.5 MiB