# Ai自动回复 **Repository Path**: xwjsss/AiReply ## Basic Information - **Project Name**: Ai自动回复 - **Description**: Typecho自动回复评论插件 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AiReply — Typecho AI 自动回复评论插件 通过 OpenAI 兼容接口接入大语言模型,自动回复读者评论。兼容 OpenAI、DeepSeek、Moonshot(Kimi)、智谱 GLM、硅基流动、Ollama 等提供 `/chat/completions` 接口的服务。 ## 功能特性 - **模型配置**:可配置 API URL、API Key、Model,兼容主流 OpenAI 格式接口 - **基本设置**: - 启用 / 禁用 AI 自动回复评论 - 忽略管理员评论(已登录用户发表的评论不触发回复) - 回复延迟秒数(0 表示立即回复,默认 0,建议不要改动) - **AI 账户设置**: - AI 名称(回复评论时显示的名称) - AI 邮箱(用于生成头像和标识 AI 回复) - AI 网址(可选,AI 评论者的链接) - 自定义头像(支持上传图片或直接输入头像 URL) - **AI 响应设置**: - 系统提示语(定义 AI 的角色与响应风格) - 回复风格:友好 / 幽默 / 专业 / 共情 / 简洁 - 最大回复长度(字符数,超出自动截断) - 关键词过滤(包含指定关键词的评论将被忽略,逗号分隔) - **AI 测试**:配置页内置测试面板,输入测试提示语即可验证 AI 回复效果 ## 安装方法 1. 将 `AiReply` 文件夹整体复制到 Typecho 的 `usr/plugins/` 目录下 2. 登录 Typecho 后台 → 控制台 → 插件,启用「AiReply」 3. 点击「设置」,按以下说明完成配置后保存 ## 配置说明 ### 模型配置 | 配置项 | 说明 | | --- | --- | | API URL | OpenAI 兼容接口地址。可填域名(如 `https://api.deepseek.com`),插件会自动拼接 `/chat/completions`;也可直接填完整接口地址 | | API Key | 你的 API 密钥,仅保存在本机数据库中 | | Model | 模型名称,如 `gpt-4o-mini`、`deepseek-chat`、`moonshot-v1-8k`、`qwen-plus` 等 | 常用模型接入示例: | 服务 | API URL | Model 示例 | | --- | --- | --- | | OpenAI | `https://api.openai.com/v1` | `gpt-4o-mini` | | DeepSeek | `https://api.deepseek.com` | `deepseek-chat` | | Moonshot(Kimi) | `https://api.moonshot.cn/v1` | `moonshot-v1-8k` | | 智谱 GLM | `https://open.bigmodel.cn/api/paas/v4` | `glm-4-flash` | | 硅基流动 | `https://api.siliconflow.cn/v1` | `Qwen/Qwen2.5-7B-Instruct` | | Ollama(本地) | `http://127.0.0.1:11434/v1` | `qwen2.5:7b` | > 提示:填写域名时插件会自动补全 `/chat/completions`;若你的接口地址路径不同(如 Azure 或中转站),请直接填写完整接口地址。 ### 基本设置 - **启用 AI 自动回复评论**:关闭时插件不产生任何回复 - **忽略管理员评论**:开启后,管理员(已登录用户)发布的评论不会触发 AI 回复 - **回复延迟(秒)**:AI 回复的延迟时间,0 表示立即回复。大于 0 时回复任务进入延迟队列,将在后续页面访问时按到期时间处理 ### AI 账户设置 - **AI 名称**:AI 回复评论时显示的作者名 - **AI 邮箱**:用于生成头像(Gravatar),同时也是标识 AI 回复的依据(自定义头像按此邮箱识别) - **AI 网址(可选)**:AI 评论者的链接 - **自定义头像**:两种方式任选其一 1. 点击「上传头像」按钮上传图片(JPG/PNG/GIF/WebP,≤ 2MB),成功后自动填入头像 URL 2. 直接在「自定义头像 URL」输入框粘贴图片地址 - 保存后,AI 评论将显示该头像;未设置时回退为邮箱对应的 Gravatar 头像 ### AI 响应设置 - **系统提示语**:AI 的基本行为指导,定义其角色与响应风格 - **回复风格**:友好 / 幽默 / 专业 / 共情 / 简洁 - **最大回复长度**:AI 回复的最大字符数,超出部分自动截断 - **关键词过滤**:包含任一关键词的评论将被忽略,不触发 AI 回复(以英文逗号分隔) ### AI 测试 在配置页底部「AI 测试」区域输入一条测试提示语(可模拟读者评论),点击「测试AI回复」即可验证模型配置是否生效。 > 测试使用已保存的配置,请先点击「保存设置」再测试。 ## 工作原理 1. 访客发表评论后,插件通过 `finishComment` 钩子捕获评论 2. 按设置依次检查:开关 → 评论类型 → 审核状态 → 是否管理员 → 关键词过滤 3. 通过检查后写入延迟队列:延迟为 0 时立即调用 AI 接口生成回复;延迟大于 0 时到期后在后续页面访问时处理 4. 生成的回复以 AI 身份(名称 / 邮箱 / 网址 / 头像)作为该评论的子评论插入,状态为「已通过」 ## 常见问题 **Q:启用后没有回复?** 请依次检查:① 确认「启用 AI 自动回复」为启用状态;② 确认 API URL / Key / Model 填写正确,可在配置页「AI 测试」中验证;③ 确认评论不是管理员发布、不包含过滤关键词;④ 评论需要处于「已通过」状态(若站点开启评论审核,评论需先通过审核,AI 不会回复待审核评论)。 **Q:自定义头像不生效?** 自定义头像按「AI 邮箱」识别 AI 评论。请确认:① 已填写 AI 邮箱;② 主题的评论渲染调用了标准头像方法 `gravatar()`(绝大多数 Typecho 主题默认支持)。 **Q:延迟回复什么时候处理?** 延迟任务在网站页面(前台或后台)被访问时处理。若设置延迟且期间无人访问站点,回复会顺延到下一次访问时生成。 **Q:API Key 安全吗?** API Key 存储在 Typecho 的 `options` 数据表(`plugin:AiReply` 项)中,与站点其他配置同级存储。 **Q:卸载保留数据吗?** - 卸载会清除如下项目: - ① 数据表typecho_aireply_queue - ② 配置项typecho_options 表 name='plugin:AiReply' - ③ 上传目录`usr/uploads/aireply/` - 保留如下项目: - AI 已经回复过的评论:它们存在 typecho_comments 表里,是博客内容的一部分,读者已经看到过。自动删除会导致评论线程断裂(父评论还在、子评论凭空消失),所以保留不动。如果需要清理,可在后台评论管理里手动删除。 - 插件文件夹本身:usr/plugins/AiReply/ 目录保留。PHP 脚本无法可靠删除自己正在运行的目录(Windows 下文件被占用),这是 Typecho 插件的标准做法 —— 禁用后手动删文件夹即可。 ## 兼容性 - 兼容 Typecho 1.0+(在 Typecho 1.3.0 上开发验证),需 PHP 7.0+、mbstring 扩展 - 依赖 OpenAI 兼容的 `/chat/completions` 接口;非标准接口请自行适配