🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度
为静态网站生成器配置自动化AI内容摘要的简易方案
对于使用静态网站生成器(如 Hugo、Jekyll、Next.js 等)的开发者而言,为每篇新文章手动撰写摘要是一项重复且耗时的工作。本文将介绍一种自动化方案:通过编写一个简单的 Node.js 脚本,在构建流程中调用 Taotoken 的 API,为文章内容自动生成摘要,并将其集成到网站的元数据中。整个过程基于 Taotoken 提供的 OpenAI 兼容 API,易于配置和扩展。
1. 准备工作:获取 Taotoken API 密钥与选择模型
在开始编写脚本之前,你需要准备好两样东西:一个 Taotoken 的 API Key 和一个适合生成摘要的模型。
首先,访问 Taotoken 平台并注册登录。在控制台的API 密钥管理页面,你可以创建一个新的密钥,请妥善保存此密钥,它将在后续步骤中作为身份验证凭证。
其次,前往模型广场浏览并选择一个适合文本摘要任务的模型。例如,claude-sonnet-4-6、gpt-4o-mini或deepseek-chat等模型都具备良好的文本理解和概括能力。记下你选定模型的 ID,它通常是类似claude-sonnet-4-6这样的字符串。
2. 核心脚本:调用 API 生成摘要
我们将创建一个 Node.js 脚本,其核心功能是读取文章内容,调用 Taotoken 的聊天补全接口,请求模型生成摘要。
首先,在你的项目根目录下初始化一个新的 Node.js 项目(如果尚未有package.json文件),并安装官方openaiSDK:
npm init -y npm install openai接下来,创建脚本文件,例如generate-summary.js。脚本的基本结构如下:
// generate-summary.js import { readFile, writeFile, readdir } from 'fs/promises'; import { join, extname } from 'path'; import OpenAI from 'openai'; import { config } from 'dotenv'; // 加载环境变量 config(); // 初始化 OpenAI 客户端,指向 Taotoken const client = new OpenAI({ apiKey: process.env.TAOTOKEN_API_KEY, // 从环境变量读取密钥 baseURL: 'https://taotoken.net/api', // Taotoken 的 OpenAI 兼容端点 }); /** * 调用 AI 模型生成文章摘要 * @param {string} content - 文章正文内容 * @returns {Promise<string>} - 生成的摘要 */ async function generateSummary(content) { // 构建一个简明的系统提示词,指导模型生成摘要 const systemPrompt = `你是一个专业的编辑助手。请根据用户提供的文章内容,生成一段简洁、准确、吸引人的摘要,长度控制在100-150字之间。摘要应独立成段,直接概括文章核心观点。`; try { const completion = await client.chat.completions.create({ model: process.env.TAOTOKEN_MODEL || 'claude-sonnet-4-6', // 从环境变量读取模型,或使用默认值 messages: [ { role: 'system', content: systemPrompt }, { role: 'user', content: `文章内容:\n${content}` }, ], temperature: 0.3, // 较低的温度值使输出更稳定、更聚焦 max_tokens: 200, // 限制生成长度 }); return completion.choices[0]?.message?.content?.trim() || '摘要生成失败。'; } catch (error) { console.error('调用 AI API 失败:', error.message); return ''; // 出错时返回空字符串,避免阻塞构建流程 } } /** * 处理指定目录下的所有 Markdown 文章 * @param {string} postsDir - 文章 Markdown 文件所在目录 */ async function processPosts(postsDir) { try { const files = await readdir(postsDir); const mdFiles = files.filter(file => extname(file) === '.md'); for (const file of mdFiles) { const filePath = join(postsDir, file); let content = await readFile(filePath, 'utf-8'); // 简单检查 front matter 中是否已有摘要字段(例如 `summary:` 或 `description:`) // 这里以 Hugo 常见的 `description:` 为例,可根据你的静态生成器调整 if (content.includes('description:') && !content.includes('description: “”')) { console.log(`文章 ${file} 已有摘要,跳过处理。`); continue; } // 提取正文内容:这里假设 front matter 以 `---` 分隔,且正文紧随其后。 // 这是一个简化示例,实际解析可能需要更健壮的库(如 gray-matter)。 const parts = content.split('---'); if (parts.length < 3) { console.log(`文章 ${file} 格式可能不符合预期,跳过。`); continue; } const bodyContent = parts[2].trim(); if (!bodyContent) { console.log(`文章 ${file} 正文内容为空,跳过。`); continue; } console.log(`正在为文章 ${file} 生成摘要...`); const summary = await generateSummary(bodyContent); if (summary) { // 在 front matter 部分插入摘要字段。这里选择在第一个 `---` 后插入 `description: “生成的摘要”` const frontMatter = parts[1]; const newFrontMatter = frontMatter + `\ndescription: “${summary}”`; const newContent = `---\n${newFrontMatter}\n---\n${bodyContent}`; await writeFile(filePath, newContent, 'utf-8'); console.log(`文章 ${file} 摘要已更新。`); } } console.log('所有文章处理完毕。'); } catch (error) { console.error('处理文章目录时出错:', error); } } // 执行脚本,假设文章存放在 `content/posts` 目录 const postsDirectory = join(process.cwd(), 'content', 'posts'); processPosts(postsDirectory);3. 环境配置与安全实践
将 API 密钥和模型 ID 等敏感信息硬编码在脚本中是不安全的。最佳实践是使用环境变量。在项目根目录创建一个.env文件:
TAOTOKEN_API_KEY=你的_API_密钥 TAOTOKEN_MODEL=你选择的模型ID,例如claude-sonnet-4-6确保.env文件已被添加到.gitignore中,以防止密钥被意外提交到版本控制系统。脚本开头的import { config } from 'dotenv';和config();会加载这个文件中的变量。
4. 集成到构建流程
为了让摘要生成自动化,你需要将这个脚本集成到静态网站的构建流程中。具体方式取决于你使用的工具。
对于 Hugo 或 Jekyll 等:你可以在执行hugo或jekyll build命令前,先运行 Node.js 脚本。这可以通过在package.json中定义 npm scripts 来实现:
{ "scripts": { "prebuild": "node generate-summary.js", "build": "hugo" } }这样,每次运行npm run build时,都会先自动生成或更新文章摘要。
对于使用 GitHub Actions 等 CI/CD 的流程:你需要在 workflow 配置文件中添加一步,用于安装依赖并运行摘要生成脚本,然后再执行构建命令。记得在仓库的 Secrets 中配置TAOTOKEN_API_KEY等环境变量。
通过以上步骤,你就为静态网站搭建了一个轻量、可配置的 AI 摘要自动化流水线。它利用 Taotoken 统一接入多模型的能力,让你可以灵活选择性价比合适的模型来处理这项任务,而无需为每个模型供应商单独编写适配代码。具体的模型价格和可用性,请以 Taotoken 控制台和模型广场的实时信息为准。
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度