碎碎念
这是博客的第 50 篇文章,感谢大家一路的支持 
一直想要一个 AI 总结,但是 Stellar 兼容的 TianLi 要 💰,秉承着能白嫖就白嫖的理念,一直没搞
最近找到了一个插件 hexo-ai-summary-liushen,支持了自定义渠道 
安装插件
首先需要安装依赖
然后是插件本体
配置
打开 _config.yml ,添加配置
| 1 | # hexo-ai-summary-liushen | 
有几个配置需要讲解一下,来自 本地实现HEXO文章AI摘要| LiuShen’s Blog
- summary_field:设置写入到文章顶部字段的名称,比如我这里默认是summary,最终实现的结果就是在文章顶部插入一个字段为:summary的摘要文本:
- cover_all:覆盖性重新生成所有摘要,非必要不要打开,可能会导致过量的api消耗。
- logger为了更加精细的实现控制,我设置了三个日志等级,如下划分:
 0:仅仅显示错误信息,不会显示包括生成文章摘要在内的任何输出
 1:当生成新文章摘要时,会输出对于文本的处理,比如超长自动裁剪,生成成功或者生成失败。
 2:调试使用,会输出包括跳过所有页面信息,仅仅处理文章部分。
 api:任何openai类型接口,包括deepseek,讯飞星火,腾讯混元,ChatGPT等。
- token:api对应的接口密钥。
- model:使用的模型名称,请检查对应接口文档说明,不同接口包含的模型不一致。
- prompt:提示词,请自行定制,建议详细一些,但是不要太废话,以我写的为例。
- ignoreRules:忽略文本正则接口,由于本插件直接获取Markdown文本,内置了一些处理,但是你仍然可以进行额外的处理,下面是内置的文本处理规则,如果有兴趣进行修改可以进行参考:
| 1 | // 2. 清理内容 | 
但是大部分情况可以忽略这个配置项,留空即可。
- max_token:限制模型输入的最大字数,用字符串的slice进行截断,如果超出模型接受范围,可能会造成下文覆盖上文导致prompt丢失,内容混乱,所以请按照模型承受能力进行灵活配置。
- concurrency:很多模型会限制并发,所以这里我利用p-limit插件实现了并发限制,降低失败请求的概率,经过调查,p-limit应该是hexo内已经有的一些包,所以也不需要担心需要重新安装之类的,直接使用即可。
启动!
由于该插件修改了头部,虽然修改的流程严格按照hexo的要求,写回头部的流程类似于Hexo-abbrlink,写入后不可撤回,并且由于AI具有不可控性,请运行前注意备份,防止在所有文章顶部生成不必要的内容,难以清理,特别是仅有一份源码在本地的朋友,注意勤备份
由于利用了hexo自带的钩子,所以,摘要数据可能会被缓存,如果直接执行hexo server,并没有任何效果,请尝试先执行hexo cl清理缓存,hexo cl不会删除任何已经生成了的摘要内容。
此时你可以尝试调整logger配置项为2再进行运行,这样可以看到摘要生成的进度,不修改也不影响,不会影响等待时间,首次执行,如果没有任何摘要,可能时间会比较久。
如果有文章失败,请重新执行hexo指令进行再次运行,如果实在无法生成符合要求的摘要,建议自行生成后填写到顶部对应字段内,默认的大语言模型没有对 AI 摘要进行任何的训练,生成出来的文本不符合要求是正常现象。
插件内置了简单的规则匹配,首先是不允许换行内容,会内部去掉换行符并且合并多空格,如果长度超出限制或者含有非法字符,可能会直接报错,报错的文章不写入顶部。
如果一切正常,应该可以在每篇文章的顶部看到对应的摘要文段。

前端实现
这里给出 Stellar 的方案,其余主题可能不适配
- 打开 themes/stellar/layout/page.ejs,加入以下内容
| 1 | function layoutSummary() { | 
- 新建 themes/stellar/source/css/_components/partial/summary.styl,内容如下
| 1 | .summary-container | 
预览是这样~
