これは「関連記事表示 by Vector Search 2.0」のデモサイトです。記事コンテンツはソリューションブログから引用しています。
Craft Cross CMSで保存したコンテンツをCraft AI Modulesで自動要約する方法

Craft Cross CMSで保存したコンテンツをCraft AI Modulesで自動要約する方法

こんにちは、Customer Engineerの岡田です。最近、ポーカーにハマり始めてるんですが、よく分からずALL INしてばかり。チップのおかわりが止まりません。強い人にぜひ教わりたいです。

さて今回は、Craft Cross CMSで記事を保存したら、AIが自動で要約文を生成する仕組みを紹介します。

せっかく時間をかけて作ったコンテンツ、そのまま投稿して終わりになっていませんか?

タイトルと本文だけでは、読者にとって「この記事が自分に関係あるのか」が分かりにくい場面もあります。記事一覧やSNSシェアで目に留まっても、最後まで読むまでに内容が伝わらなければ途中離脱されてしまうケースもあります。

そこで効果的なのが要約文です。 「この記事を読むと何が分かるのか」を先に伝えることで、読者は全文を読まなくても記事の全体感を判断できます。

結果的に、本当に届けたい人にコンテンツが届きやすくなり、記事の独自性もぐっと際立ちます!

この仕組みを導入することで、以下のようなメリットが得られます:

  • 作業時間の削減: 要約文作成の手間を省き、コンテンツ入稿の効率化
  • 品質の一貫性: AIが一定の基準で要約を生成するため、表現のばらつきを抑制
  • 即時反映: コンテンツ保存と同時に要約が生成されるため、待ち時間もほぼなし

この仕組みの応用として、以下のようなユースケースも考えられます:

  • 記事の要約文ではなく、「こんな人にオススメ」といった説明文を生成
  • 多言語への自動翻訳
  • キーワードやタグの自動抽出

アウトプットイメージ

最終的なアウトプットイメージは次の通りです。

Craft Cross CMSで記事タイトルと本文を入稿します。

保存ボタンを押すと、AIが本文から要約文を自動的に生成し、その結果が指定のカスタムフィールドに自動反映されます。

生成された要約文は、記事一覧ページでの概要表示、OGP(SNSシェア時のプレビュー)、メールマガジンの導入文など、さまざまな場面で活用できます。

入稿者は本文の執筆に集中でき、要約文の作成はAIに任せられるため、コンテンツ制作のワークフローがシンプルになります。

このアウトプットイメージは記事の要約文を生成するシーンを想定していますが、プロンプト(指示文)を変更することで「こんな人にオススメ」といった説明文生成や、他言語への自動翻訳など、さまざまなテキスト生成に応用できます。

このソリューションの処理の流れは以下の通りです。

  1. Craft Cross CMSのコンテンツが新規作成・更新されると、Hook v2トリガーが発動し、Craft Functionsに処理が送られます
  2. Craft Functionsは、コンテンツ取得APIを使ってCraft Cross CMSから対象コンテンツの本文を取得し、それをCraft AI Modulesで要約文を生成します
  3. 生成された要約文は、コンテンツ更新APIを使ってCraft Cross CMSのカスタムフィールドに保存されます

注意点

この仕組みを実装するには、次の点に注意をしてください。

  • API v2アプリ、Craft Cross CMS、Craft Functions、Craft AI Modulesが利用できるKARTEプロジェクトが必要です
  • Craft AI Modulesを利用して得られた回答が必ずしも正しいわけではないことにご注意ください
    • AIが必ずしも正確な情報を返してくれる保証はないため、その点は本ソリューションに限らず注意が必要です

設定手順

設定の手順は次の通りです。

  1. API v2 アプリを作成する
  2. API v2 アプリのアクセストークンを Craft Secret Manager に登録する
  3. Craft Cross CMSのモデルを作成する
  4. Craft Functionsを作成する
  5. Craft Cross CMS更新時のHookを設定する

1. API v2 アプリを作成する

Craft Cross CMSのコンテンツを取得・更新するために、API v2アプリを作成します。

手順

  • KARTEの管理画面から「API」メニューに移動します
  • 「API v2」から新しいアプリを作成します
  • アプリ名を入力します
    • 例:「craft-ai-content-summary」
  • 以下のscopeを選択します
    • beta.cms.content.get:CMSコンテンツの取得
    • beta.cms.content.update:CMSコンテンツの更新
  • アプリを作成し、アクセストークンをメモします

2. API v2 アプリのアクセストークンを Craft Secret Manager に登録する

生成されたアクセストークンを、Craft Secret Manager に登録します。

手順

  • KARTEの管理画面から「Craft」メニューに移動します
  • シークレットを開き、新規作成を押下します
  • シークレットの名前(キー名)を入力します
    • 例:CMS_AI_SUMMARIZE_TOKEN
  • シークレットの値に、API v2アプリのアクセストークンをペーストします
  • シークレットを保存します

このシークレットの名前(キー名)は、後ほどCraft Functionsの変数として使用します。(例:CMS_AI_SUMMARIZE_TOKEN

3. Craft Cross CMSのモデルを作成する

AIに要約させたい記事を管理するためのCMSモデルを作成します。

手順

  • KARTEの管理画面から「Craft Cross CMS」メニューに移動します
  • 新しいモデルを作成します
  • モデル名を入力します
    • 例:「記事」
  • 以下のフィールドを追加します
    • タイトル(テキスト型):記事のタイトルを入力するフィールド
    • 本文(リッチテキスト型またはテキスト型):記事の本文を入力するフィールド
    • 要約(テキスト型):AIが生成する要約を保存するフィールド
  • モデルを保存します

モデルIDと各フィールドのフィールドキー(APIで使用する識別子)は後ほどCraft Functionsで使用するため、メモしておきます。

  • モデルIDをメモしておきます
  • タイトル(テキスト型)のフィールドキーをメモしておきます
    • 例:title
  • 本文(リッチテキスト型またはテキスト型)のフィールドキーをメモしておきます
    • 例:body
  • 要約(テキスト型)のフィールドキーをメモしておきます
    • 例:ai_summary

4. Craft Functionsを作成する

実際にAIに要約を生成させるロジックをCraft Functionsで実装します。

手順

  • KARTEの管理画面から[Craft]メニューに移動します
  • [ファンクション]を開きます
  • [Craft > ファンクション > 新規作成 > テンプレートから作成] を選択します
  • Craft Cross CMS本文のAI Modulesによる自動要約 」というテンプレートを検索し [取得] ボタンをクリックします
    • プロンプトを変更する場合は、[コード]タブで13行目から45行目を変更します
  • [反映] ボタンをクリックします
  • [設定 > ファンクションのタイプ] で イベント駆動タイプ を選択します
  • [変数] タブで次の変数の値を設定してください
    • LOG_LEVEL:ログレベルを設定します
      • 例:INFO
    • CMS_MODEL_ID:3で作成したモデルのモデルIDを設定します
    • KARTE_APP_TOKEN_SECRET:2で登録したシークレットの名前(キー名)を設定します
    • GEMINI_MODEL:使用するGeminiモデルを設定します
      • 例:gemini-2.0-flash
    • TARGET_CMS_MODEL_TITLE:タイトルフィールドのフィールドキーを設定します
      • 例:title
    • TARGET_CMS_MODEL_BODY:本文フィールドのフィールドキーを設定します
      • 例:body
    • UPDATE_CMS_MODEL_FIELD:要約フィールドのフィールドキーを設定します
      • 例:ai_summary
  • 適当なファンクション名をつけて [デプロイ] します

5. Craft Cross CMS更新時のHookを設定

Craft Cross CMSのコンテンツが新規作成・更新された時に、4で作成したCraft Functionsが実行されるよう、Hook v2を設定します。

手順

  • KARTEの管理画面から「Craft」メニューに移動します
  • 「Hook v2」を開きます
  • 新しいHookを作成します
  • トリガーとして以下の2つを選択します
    • cms/content/create:コンテンツ新規作成時
    • cms/content/update:コンテンツ更新時
  • 実行するFunctionとして、4で作成したCraft Functionsを選んでください
  • Hookを保存します

これで、Craft Cross CMSのコンテンツが作成・更新されるたびに、自動的にAIが要約を生成するようになります。

実際に動かしてみる

設定が完了したら、実際にAIによる要約生成が動作することを確認します。

操作手順:

  1. Craft Cross CMSの対象モデルで、新規コンテンツを作成します

  2. タイトルと本文を入力します(要約フィールドは空のままで問題ありません)

  3. 保存ボタンを押します

  4. Hook v2トリガーが発動し、Craft Functionsが実行されます(数秒~十数秒程度)

  5. 画面を再読み込みすると、要約フィールドにAIが生成した要約文が自動入力されていることを確認できます

おわりに

今回は、Craft Cross CMSとCraft AI Modulesを組み合わせて、コンテンツ入稿時にAIが自動で要約文を生成する仕組みを紹介しました。

この仕組みを導入することで、コンテンツ入稿の効率化や記事の独自性を高めることに繋がります。

応用として、記事の要約文ではなく、「こんな人にオススメ」といった説明文を生成したり、複数言語への自動翻訳、キーワードやタグの自動抽出も可能です。

プロンプト(指示文)を調整することで、さまざまなテキスト生成に対応できます。ぜひ、自社のコンテンツ管理ワークフローに合わせてカスタマイズしてください。