解决博客零评论困境:AI 评论机器人部署全记录

解决博客零评论困境:AI 评论机器人部署全记录
Eucalyptus前言
写博客的人大多有过这种体验:精心打磨一篇文章发布后,评论区却长期空白。对读者而言,”零评论”往往意味着内容无人问津,反而降低了互动意愿;对博主来说,手动维护评论既耗时又难以持续,尤其是当站点积累了数十篇甚至上百篇文章后,逐篇补充评论几乎成了不可能完成的任务。
我目前维护的个人博客基于 Hexo 框架,使用 anzhiyu 主题,评论系统选用 Twikoo 并通过 Docker 独立部署。随着文章数量增加,我逐渐意识到需要一个自动化的方案来解决评论冷启动问题——不是批量注册马甲账号刷量,而是让 AI 以真实读者的视角参与讨论,生成有实质内容、角度各异的评论,从而营造自然的社区氛围。
这个方案的核心思路是:利用大模型能力生成拟人化评论内容,同时通过模拟真实用户的浏览器 UA、IP 地址、Gravatar 头像等细节,让 AI 评论在数据层面与真实用户无异。系统不修改 Hexo 主题或 Twikoo 源码,而是以独立 Python 脚本的形式运行,通过读取 Twikoo 本地数据库获取现有评论,再经 HTTPS 接口提交新评论或回复。
本文将完整记录该系统的部署过程,从环境准备、模块配置到定时任务运行,力求每一步都可复现。Twikoo 本身的部署已有大量文档,此处不再赘述;代码实现仅展示关键结构与思路,具体细节可根据实际需求调整补充
代码架构
1 | ai_bot/ # Python 包 |
关键设计
分层隔离
ai_service只负责内容生成,不感知 Twikootwikoo_client只负责数据读写,不感知 AImain负责编排,业务逻辑下沉到auto_comment/reply_bot
双通道读写
- 读:直接解析本地
db.json.0,绕过 API 限制 - 写:HTTS POST 到 Twikoo 容器,复用官方接口
状态外置
- 角度轮换记录
USED_ANGLES放内存(非持久,重启清空) - 配置全放
config.py,支持环境变量注入
相关代码
下述代码统一放在博客根目录下的一个文件中,例如新建 ai_bot
config.py
config.py 作为配置中心模块,集中管理 AI 接口密钥、Twikoo 服务地址、评论策略比例等全局参数,全部支持通过环境变量注入,实现配置与代码分离,便于不同环境快速切换。
SENSENOVA_API_URL这个需要使用自己模型的URL调用地址,SENSENOVA_MODEL切换模型,TWIKOO_URL可以使用域名或IP+PORT
1 | #!/usr/bin/env python3 |
OPENAI_API_KEY环境变量配置并持久化
1 | # 写入 ~/.bashrc |
ai_service.py
ai_service.py 作为 AI 生成服务模块,封装 SenseNova 大模型 API 调用,提供昵称生成、评论生成、回复生成三个核心接口;通过预设多角度评论池与角色扮演策略,结合温度参数和长度随机控制,确保输出内容拟人化且避免重复,同时维护已用角度记录实现单篇文章内的评论多样性。
1 | #!/usr/bin/env python3 |
twikoo_client.py
twikoo_client.py 作为 Twikoo 交互层模块,采用双通道设计实现评论数据的读写操作:读取通道直接解析本地 db.json.0 文件获取完整评论列表,写入通道通过 HTTP POST 向 Twikoo 容器提交新评论或回复;同时负责拟人化字段构造(UA、IP、邮箱等)及 URL 编码兼容处理,确保数据层面与真实用户无异。
1 | # twikoo_client.py |
auto_comment.py
auto_comment.py 作为新评论逻辑模块,负责组装并提交单篇文章的首条 AI 评论:依次调用 AI 服务生成评论内容、随机昵称和邮箱,构造完整的 Twikoo 评论数据包,最终通过客户端提交;内置可选的去重检查机制,避免同一篇文章被重复评论。
1 | #!/usr/bin/env python3 |
reply_bot.py
reply_bot.py 作为回复评论逻辑模块,负责筛选并回复文章下现有评论:读取 Twikoo 本地数据库获取未回复评论列表(排除 AI 自身评论),调用 AI 服务生成针对性回复内容,正确设置 pid 和 rid 字段确保回复层级关系准确,实现模拟真实读者间的互动对话。
1 | # reply_bot.py |
main.py
main.py 作为入口调度模块,负责整合全系统运行流程:自动扫描 Hexo 生成目录发现文章列表,按配置比例随机调度新评论或回复模式,提供 CLI 参数支持单篇/批量/范围选择及临时比例覆盖,最终输出执行统计报告,是日常定时任务调用的唯一入口。
1 | #!/usr/bin/env python3 |
使用方法
基础用法
1 | #查看文章列表 |
模式控制
1 | # 强制发新评论(100% 概率) |
批量处理
1 | # 全部文章(按默认比例) |
相关参数
| 参数 | 必填 | 默认值 | 说明 |
|---|---|---|---|
--id |
否 | 全部 | 文章序号,如 3 / 1,3 / 5-10 |
--ratio |
否 | 配置值 | 临时覆盖新评论比例,1-100 |
--count |
否 | 3 | 回复模式下单篇最大回复数 |
后续扩展
AI 互动机器人:注册固定昵称(如 @小助手),访客可在评论区 @ 主动提问,AI 实时检测触发词并回复,支持多轮对话,从单向评论输出升级为双向互动助手。








