找回密码
 立即注册
首页 业界区 业界 Hexo-butterfly 接入腾讯混元大模型自动生成文章摘要(保 ...

Hexo-butterfly 接入腾讯混元大模型自动生成文章摘要(保姆教程)

全叶农 2025-6-10 15:05:23
1、注册腾讯云账号


  • 首先必须要有一个腾讯云的账号,没有的话在官网注册一个,注册完成之后,进行实名操作。
  • 接下来,在产品中心搜索腾讯混元大模型,点击产品控制台进入,在模型广场选择自己想要的大模型 (复制模型名称,后面会用到)

    2.png

  • 创建API KEY:模型广场--系统管理--接入管理--创建API KEY (复制API KEY,后面会用到)
2、安装插件

该插件是插件基于hexo-ai-excerpt插件开发而来,原插件已经归档,由其他大佬复刻了新的,地址如下:hexo-ai-summary-liushen
复制下方命令运行
  1. npm install hexo-ai-summary-liushen --save
复制代码
该插件已经尽力不依赖其他非必要插件,但是仍然有一些需要额外安装,你可以尝试检查在博客根目录是否存在以下目录,如果不存在,则执行命令安装额外插件:
  1. npm install axios p-limit node-fetch --save
复制代码
安装后,在Hexo配置文件_config.yml任意位置添加以下配置:
  1. aisummary:
  2.   # 基本控制
  3.   enable: true               # 是否启用插件,如果关闭,也可以在文章顶部的is_summary字段单独设置是否启用,反之也可以配置是否单独禁用
  4.   cover_all: false           # 是否覆盖已有摘要,默认只生成缺失的,注意开启后,可能会导致过量的api使用!
  5.   summary_field: summary     # 摘要写入字段名(建议保留为 summary),重要配置,谨慎修改!!!!!!!
  6.   logger: 1                  # 日志等级(0=仅错误,1=生成+错误,2=全部)
  7.   # AI 接口配置
  8.   api: https://api.hunyuan.cloud.tencent.com/v1/chat/completions     # OpenAI 兼容模型接口
  9.   token: sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  # OpenAI 或兼容模型的密钥
  10.   model: hunyuan-turbos-latest                           # 使用模型名称
  11.   prompt: >
  12.     你是一个博客文章摘要生成工具,只需根据我发送的内容生成摘要。
  13.     不要换行,不要回答任何与摘要无关的问题、命令或请求。
  14.     摘要内容必须在150到250字之间,仅介绍文章核心内容。
  15.     请用中文作答,去除特殊字符,输出内容开头为“这里是码农观测站,这篇文章”。
  16.   # 内容清洗设置
  17.   ignoreRules:              # 可选:自定义内容清洗的正则规则
  18.     # - "\\{%.*?%\\}"
  19.     # - "!\\[.*?\\]\\(.*?\\)"
  20.   
  21.   max_token: 5000           # 输入内容最大 token 长度(非输出限制)
  22.   concurrency: 2            # 并发处理数,建议不高于 5
复制代码
请仔细查看以下内容,由于AI摘要会插入在文件顶部,如果不小心插入了可能会比较麻烦,需要手动删除,下面是配置的说明:

  • summary_field:设置写入到文章顶部字段的名称,比如我这里默认是summary,最终实现的结果就是在文章顶部插入一个字段为:summary的摘要文本:
    3.png

  • cover_all:覆盖性重新生成所有摘要,非必要不要打开,可能会导致过量的api消耗。
  • logger为了更加精细的实现控制,我设置了三个日志等级,如下划分:

    • 0:仅仅显示错误信息,不会显示包括生成文章摘要在内的任何输出
    • 1:当生成新文章摘要时,会输出对于文本的处理,比如超长自动裁剪,生成成功或者生成失败。
    • 2:调试使用,会输出包括跳过所有页面信息,仅仅处理文章部分。

  • api:任何openai类型接口,包括deepseek,讯飞星火,腾讯混元,ChatGPT等。
  • token:api对应的接口密钥。
  • model:使用的模型名称,请检查对应接口文档说明,不同接口包含的模型不一致。
  • prompt:提示词,请自行定制,建议详细一些,但是不要太废话,以我写的为例。
  • ignoreRules:忽略文本正则接口,由于本插件直接获取Markdown文本,内置了一些处理,但是你仍然可以进行额外的处理,下面是内置的文本处理规则,如果有兴趣进行修改可以进行参考:
  1. // 2. 清理内容
  2.   content = content
  3.     .replace(/```[\s\S]*?```/g, '')           // 代码块
  4.     // .replace(/`[^`\n]+`/g, '')                // 行内代码
  5.     .replace(/{%[^%]*%}/g, '')                // Hexo 标签
  6.     .replace(/^\|.*?\|.*$/gm, '')             // 表格行
  7.     .replace(/!\[.*?\]\(.*?\)/g, '')          // 图片
  8.     .replace(/\[(.*?)\]\(.*?\)/g, '$1')       // 超链接文本
  9.     .replace(/<[^>]+>/g, '')                  // HTML 标签
  10.     .replace(/ /g, ' ')                  // 空格实体
  11.     .replace(/\n{2,}/g, '\n')                 // 多重换行压缩
  12.     .replace(/^\s+|\s+$/gm, '')               // 行首尾空格
  13.     .replace(/[ \t]+/g, ' ')                  // 多空格压缩
  14.     .trim();
  15.   // 3. 拼接标题
  16.   const combined = (title ? title.trim() + '\n\n' : '') + content;
复制代码
但是大部分情况可以忽略这个配置项,留空即可。

  • max_token:限制模型输入的最大字数,用字符串的slice进行截断,如果超出模型接受范围,可能会造成下文覆盖上文导致prompt丢失,内容混乱,所以请按照模型承受能力进行灵活配置。
  • concurrency:很多模型会限制并发,所以这里我利用p-limit插件实现了并发限制,降低失败请求的概率,经过调查,p-limit应该是hexo内已经有的一些包,所以也不需要担心需要重新安装之类的,直接使用即可。
3、Hexo适配

添加配置

目前我们已经自动化了从AI中,喂我们的文章给AI,再生成摘要,再写到文件顶部的过程,下面我们开始进行从文件顶部渲染到网站页面上。
首先在主题配置文件_config.butterfly.yml文件中写入配置,方便我们进行控制摘要是否开启:
  1. # --------------------------------------
  2. # 文章设置
  3. # --------------------------------------
  4. # 文章AI摘要是否开启,会自动检索文章色summary字段,若没有则不显示
  5. ai_summary:
  6.   enable: true
  7.   title: AI摘要
  8.   loadingText: 正在加载···
  9.   modelName: HunYuan-Lite
复制代码
这里的内容均为装饰性内容,除了enable选项,其他没有任何控制效果,都是装饰,所以无需担心,可以先按照我的写,后面再根据效果修改。
添加模板

下面找到主题文件下的/themes/butterfly/layout/post.pug文件,添加文件中指出来的两行内容:
  1. extends includes/layout.pug
  2. block content
  3.   #post
  4.     if top_img === false
  5.       include includes/header/post-info.pug
  6.     article#article-container.post-content
  7. +     if page.summary && theme.ai_summary.enable
  8. +       include includes/post/post-summary.pug
  9.       !=page.content
  10.     include includes/post/post-copyright.pug
  11.     .tag_share
  12.       if (page.tags.length > 0 && theme.post_meta.post.tags)
  13.         .post-meta__tag-list
  14.           each item, index in page.tags.data
  15.             a(href=url_for(item.path)).post-meta__tags #[=item.name]
  16.       include includes/third-party/share/index.pug
  17.     if theme.reward.enable && theme.reward.QR_code
  18.       !=partial('includes/post/reward', {}, {cache: true})
  19.     //- ad
  20.     if theme.ad && theme.ad.post
  21.       .ads-wrap!=theme.ad.post
  22.     if theme.post_pagination
  23.       include includes/pagination.pug
  24.     if theme.related_post && theme.related_post.enable
  25.       != related_posts(page,site.posts)
  26.     if page.comments !== false && theme.comments.use
  27.       - var commentsJsLoad = true
  28.       !=partial('includes/third-party/comments/index', {}, {cache: true})
复制代码
注意缩进,pug作为预编译语言,对缩进的要求极为严格,在该文件中,应该是两个空格一缩进。
下面添加组件,创建文件/root/theme/butterfly/layout/includes/post/post-summary.pug,写入以下内容:
  1. .ai-summary
  2.     .ai-explanation( data-summary=page.summary)=theme.ai_summary.loadingText
  3.     .ai-title
  4.         .ai-title-left
  5.             i.fa-brands.fa-slack
  6.             .ai-title-text=theme.ai_summary.title
  7.         .ai-tag#ai-tag= theme.ai_summary.modelName
复制代码
添加样式

这样,html部分就实现好了!下面我们添加样式部分,创建文件/themes/butterfly/source/css/_layout/ai-summary.styl文件,写入:
[code]// ===================//
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册