書いた長文を 「3行要約 + タイトル候補3つ + メタディスクリプション」 に変換するパイプラインを、Claude APIで実装する方法。
完成イメージ
$ node summarize.mjs ./blog/post.mdx
出力:
【3行要約】
- ターミナルから1コマンドで新規記事を作成
- Claude Codeで本文を生成
- git push で30秒後に公開
【タイトル候補】
1. Claude Code + MDX で、毎日ブログを3分で公開する
2. ブログ運用、ターミナル一気通貫で完結する時代
3. WordPressより速い、エンジニア向けブログ運用フロー
【メタディスクリプション】
ターミナル一気通貫のブログ運用フロー。新規記事生成からClaude Codeでの本文書き出し、git pushで自動公開まで3分。
実装
summarize.mjs:
import Anthropic from "@anthropic-ai/sdk";
import fs from "node:fs";
const client = new Anthropic();
async function summarize(text) {
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{
role: "user",
content: `以下の記事を分析し、3つを生成してください:
1. 3行要約(箇条書き)
2. タイトル候補3つ(魅力的・SEOを意識)
3. メタディスクリプション(120字以内)
記事本文:
${text}`,
},
],
});
return message.content[0].text;
}
const file = process.argv[2];
const text = fs.readFileSync(file, "utf-8");
const result = await summarize(text);
console.log(result);
セットアップ
npm install @anthropic-ai/sdk
export ANTHROPIC_API_KEY="sk-ant-..."
node summarize.mjs ./blog/post.mdx
応用:プロンプトキャッシュで高速化
長文を何度も処理する場合、Prompt Caching を使うとコストが劇的に下がります(同じ記事に対して複数の質問を投げる場合):
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
system: [
{
type: "text",
text: longSystemPrompt,
cache_control: { type: "ephemeral" },
},
],
messages: [{ role: "user", content: question }],
});
2回目以降のリクエストでは 入力トークンの90%が割引。長文処理ループには必須です。
業務での活用例
- 議事録の自動要約:Slack/Zoom文字起こし → 要約 → Confluence投稿
- 記事のSEO最適化:既存記事を全件処理 → メタタグ自動生成 → 一括更新
- メルマガ配信:直近1週間のブログ記事を「ダイジェスト形式」で自動生成
AI連携の実装、業務システムとの統合、お気軽にご相談ください。 お問い合わせ →