一个为 Typecho 博客系统设计的 AI 对话插件,适用于所有 Typecho 主题。支持创建独立 AI 对话页面和在文章/页面中使用短代码嵌入聊天窗口。
本插件基于Xuan's blog改善,适用了所用Typecho主题,原项目地址见:https://blog.ybyq.wang/archives/836.html
✨ 功能特性
- 🔌 全主题通用:不依赖任何特定主题,兼容所有 Typecho 主题
- 📝 两种使用方式:独立页面模板 + 文章短代码嵌入
- 🤖 多模型支持:支持所有 OpenAI 兼容格式的 API
- 💾 对话历史:登录用户云端同步,游客本地存储
- 📱 响应式设计:完美适配桌面和移动端
- 🎨 独立样式:自带美观的聊天界面,不与主题样式冲突
- 🚀 零依赖:移除 jQuery 依赖,纯原生 JavaScript
- ⚙️ 丰富配置:系统提示词、窗口高度、嵌入方式等可自定义
插件下载:
https://github.com/chenyuwebwawa/AiChat/
🚀 安装方法
1. 上传插件
将整个 AiChat 文件夹上传到 Typecho 的 usr/plugins/ 目录下。
2. 激活插件
- 登录 Typecho 后台
- 进入"控制台" → "插件管理"
- 找到"AiChat"插件,点击"激活"
3. 配置插件
在插件设置页面配置以下参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
| AI API接口地址 | OpenAI 兼容格式的 API 地址 | https://api.deepseek.com/v1/chat/completions |
| AI API Key | 您的 API 密钥 | - |
| AI 模型 | 使用的模型名称 | deepseek-chat |
| 温度参数 | 控制回复随机性 0.0-1.0 | 0.7 |
| 最大回复长度 | 单次回复最大 token 数 | 2000 |
| 系统提示词 | 设置 AI 的角色和行为 | - |
| 嵌入方式 | 选择插件的使用方式 | 同时支持 |
| 聊天窗口高度 | 聊天区域高度(像素) | 450 |
📖 使用方法
方法一:创建独立对话页面(推荐)
- 在 Typecho 后台进入 管理 → 独立页面
- 点击 新增页面
- 在右侧 自定义模板 下拉框中选择 "AI Chat Plugin (通用版)"
- 填写页面标题(如:"AI助手")
- 发布页面即可
方法二:在文章/页面中嵌入聊天窗口
在任何文章或页面的内容中,使用短代码:
[aichat]即可在文章内容中嵌入聊天窗口!
示例:
## 欢迎与我对话
如果您有任何问题,欢迎使用下方的 AI 助手:
[aichat]
感谢您的访问!方法三:若以上方法都不适用
开启插件后访问:您的域名/ai-chat
🔌 支持的 API 服务
插件支持所有 OpenAI Chat API 兼容格式的服务,包括但不限于:
| 服务商 | API 地址 | 模型示例 |
|---|---|---|
| DeepSeek | https://api.deepseek.com/v1/chat/completions | deepseek-chat |
| OpenAI | https://api.openai.com/v1/chat/completions | gpt-3.5-turbo, gpt-4 |
| Kimi | https://api.moonshot.cn/v1/chat/completions | moonshot-v1-8k |
| 通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions | qwen-turbo |
| 文心一言 | https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop | ernie-bot |
| 其他 | 任意兼容 OpenAI 格式的接口 | - |
📋 系统要求
- Typecho 1.2+
- PHP 7.2+ (推荐 7.4+)
- 服务器支持 cURL 扩展
- MySQL 5.6+ / MariaDB 10.1+
🔧 故障排除
问题1:自定义模板不显示
解决方案:
- 重新激活插件
- 清除浏览器缓存后刷新后台页面
问题2:短代码不生效
解决方案:
- 确保短代码拼写正确:
[aichat](小写,无空格) - 在插件设置中确认"嵌入方式"设置为"短代码嵌入"或"同时支持"
问题3:API 请求失败
解决方案:
- 检查 API Key 是否正确
- 确认服务器可以访问外网
- 检查 cURL 扩展是否启用
- 查看 PHP 错误日志获取详细信息
问题4:聊天窗口样式异常
解决方案:
- 这是新版 v2.0 的重点优化!现在应该不会出现了
- 如仍有问题,请在插件设置中调整聊天窗口高度
问题5:对话历史无法保存
解决方案:
- 游客:检查浏览器是否禁用了 localStorage
- 登录用户:检查数据库表是否创建成功
🆚 v2.0 改进说明
相比旧版本,v2.0 通用版做了以下重大改进:
- 主题兼容性:彻底移除 Handsome 主题依赖,适用于 所有 Typecho 主题
两种嵌入方式:
- 独立页面模板(原方式)
[aichat]短代码,可嵌入任意文章/页面
技术优化:
- 移除 jQuery 依赖,使用纯原生 JS
- 独立的 CSS 命名空间,避免样式冲突
- 自动注入 CSS 和 JS,无需修改主题
新增配置项:
- 系统提示词配置
- 聊天窗口高度自定义
- 嵌入方式选择
- 代码优化:更规范、更高效、更易维护
📄 更新日志
v2.0.0 🌟 通用版重大更新
- ✨ 全主题通用:移除对 Handsome 主题的依赖,兼容所有 Typecho 主题
- ✨ 短代码支持:新增
[aichat]短代码,可在文章中嵌入聊天窗口 - ✨ 移除 jQuery:纯原生 JavaScript 实现,减少依赖
- ✨ 自动注入:CSS 和 JS 自动注入页面,无需手动修改主题
- ✨ 系统提示词:新增自定义系统角色配置
- ✨ 独立命名空间:所有 CSS 类加前缀,避免样式冲突
- ✨ 新增配置:聊天窗口高度自定义、嵌入方式选择
- 🔧 代码重构:优化代码结构,提升可维护性
v1.3.1
- 优化 PJAX 兼容性(Handsome 主题专用)
- 重构前后端分离架构
v1.0.0
- 初始版本发布
📞 技术支持
如遇到问题,请:
- 检查插件配置是否正确
- 查看浏览器控制台(F12)是否有错误
- 检查 PHP 错误日志
- 确认 API 服务可正常访问
享受您的 AI 对话之旅! 🎉
本文来自投稿,不代表本站立场,如若转载,请注明出处:


api key塞前端 等着被薅吧
说真的 这个插件我装了又卸了 折腾了两个晚上 先别急着喷我 我用的主题是handsome 按理说用户量够大了吧 结果嵌入文章那个短代码 在首页列表里直接把我整个布局搞崩了 侧边栏跑到底部去了 后来才发现得在设置里手动加个什么容器类名 但文档里根本没写 我是翻源码才找到的 还有就是API Key的问题 你放在插件配置里 那所有看到你页面源代码的人 都能从js里把你key抠出来 我试了下 确实能 直接访问你后台那个请求接口 连个鉴权都没有 只要知道你的key 别人就能拿你的额度去聊天 这可不是小事 要是被刷爆了 一个月账单够你喝一壶 不过话又说回来 对于那种懒得折腾的人 这插件确实省事 我试了下deepseek的接口 响应速度还行 聊天窗口那个气泡动画也挺顺滑 比我自己之前拼的iframe强多了 但你要让我说推荐不推荐 我只能说 博客折腾党的福音 懒人的坑 顺便问一句 作者有没有考虑过做个用户级别的限额功能 就是每个访客一天能聊多少条 超了就不给用了 这样就算key泄露了 损失也有限 不然我是真不敢在公网上挂这个
卧槽,刚看到这个插件,第一反应是 Typecho 终于也有人搞这玩意儿了。我之前一直在自己博客上折腾各种 AI 聊天,试过把 ChatGPT 的 iframe 直接嵌进去,丑得一批不说,每次加载还卡半天。你这个零依赖、纯原生 JS 倒是挺对我胃口,毕竟我那破主题加载个 jQuery 都嫌重。 不过话说回来,「适用于所有 Typecho 主题」这话我从不敢信。Typecho 主题圈有多野你又不是不知道,有些人写主题连标准的 `page.php` 模板都懒得做,直接一个 `index.php` 通吃所有页面。你那个独立页面模板「在右侧自定义模板下拉框里选」——好家伙,要是主题压根没定义自定义模板功能,下拉框直接没得选,咋整?你说方法三可以走 `/ai-chat` 路由,那这个路由是插件自己注册的吗?跟某些主题的伪静态规则撞了咋办?会不会直接 404 给用户看?你得把 fallback 逻辑写清楚一点啊。 再一个就是 API key 的安全问题。这个我必须得喷一下,你插件配置文件里直接明文存 API Key 对吧?Typecho 插件设置项都是塞数据库的,万一哪天博客被拖库或者后台密码泄露,key 直接就裸奔了。如果是像 wordpress 那个 AI 插件一样把 key 放环境变量或者单独一个 php 文件里,至少心理上能安全点。跑个题,我有个朋友之前就是把某个平台的 key 写进博客配置文件,后来发现被人盗刷了几百块,真是日了狗了。虽然你说支持所有 OpenAI 兼容格式的 API,但建议文档里加一个「建议使用环境变量或配置文件存储密钥」的提示,能救一个是一个。 还有一个细节,游客对话历史存 localStorage,这个我得说太拉了。且不说不换浏览器的问题,你知道有些用户(比如我)是开无痕模式的吗?关掉窗口记录全没了,下次继续对话的时候 AI 一脸懵,还得重新教它一遍背景。你还不如直接用 IndexedDB 做,或者干脆游客不存历史、省点空间,省得给了希望又让人失望。 不过说真的,你这插件有个小细节我挺喜欢——「窗口高度可配置」,默认 450 像素。这玩意儿听起来小,对强迫症博主来说真是救命稻草。我之前用别的插件,高度写死 600 像素,在手机上看聊天框占大半屏幕,往下滑都费劲。你现在写了响应式设计,那手机端高度是不是也自适应?还是说直接继承桌面端高度?有空的话可以在文档里补一句移动端的具体表现,不然装完了还得自己调半天 CSS。 最后说下原项目的事。你说基于 Xuan's blog 改善,还给了一个原项目地址。这个态度没毛病,开源就该这样。但你既然都改了,好歹列个 change log 吧?不然别人根本不知道你改了个啥。是加了多模型支持,还是重写了前端?我打开你 GitHub 仓库也只看到 README 里一堆功能特性,没看到和新版本的比较。你让后来者怎么选?直接闭眼装你的版本吗?万一人家原版的某些功能恰恰是你砍掉的,那不蛋疼了。 不过整体而言,如果这玩意儿真能像你说的那样,在任意主题下都能跑得起来,那对我来说已经够香了。我那个破 Typecho 博客,主题是好多年前买的,作者早跑路了,到现在啥插件都兼容不上。反正先装下来试试,要是出问题我再回来喷你,别跑。
又要填API key又要配模型,折腾半天不如直接挂个链接,真服了。