組み込みの AI による要約

公開日: 2024 年 11 月 11 日、最終更新日: 2025 年 7 月 30 日

商品の解説 ウェブ 拡張機能 Chrome ステータス インテント
MDN Chrome 138 Chrome 138 表示 発送予定

ユーザーは、長い記事、複雑なドキュメント、活発なチャットの会話などを、簡潔で洞察に満ちた要約にまとめることができます。

Summarizer API を使用すると、文、段落、箇条書きリストなど、さまざまな長さと形式のさまざまな種類の要約を生成できます。この API は、次のようなシナリオで役立ちます。

  • 記事やチャットの会話の要点をまとめる。
  • 記事のタイトルと見出しを提案します。
  • 長いテキストの簡潔で有益な要約を作成します。
  • 書評に基づいて書籍のティーザーを生成する。

始める

要約ツール API は Chrome 138 安定版から利用できます。

この API を使用する前に、Google の生成 AI の使用禁止に関するポリシーを確認してください。

機能検出を実行して、ブラウザが Summarizer API をサポートしているかどうかを確認します。

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

ハードウェア要件を確認する

Chrome でこれらの API を使用して機能を操作するデベロッパーとユーザーには、次の要件があります。他のブラウザでは動作要件が異なる場合があります。

言語検出 API と翻訳 API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは動作しません。Prompt API、Summarizer API、Writer API、Rewriter API は、次の条件を満たす場合に Chrome で動作します。

  • オペレーティング システム: Windows 10 または 11、macOS 13 以降(Ventura 以降)、Linux。Gemini Nano を使用する API は、Chrome for Android、iOS、ChromeOS ではまだサポートされていません。
  • ストレージ: Chrome プロファイルを含むボリュームに 22 GB 以上の空き容量がある。
  • GPU: 4 GB を超える VRAM。
  • ネットワーク: 無制限のデータ通信または従量制でない接続。

Gemini Nano の正確なサイズは、ブラウザがモデルを更新するにつれて変化する可能性があります。現在のサイズを確認するには、chrome://on-device-internals にアクセスして [モデルのステータス] に移動します。リストに表示された [ファイルパス] を開いて、モデルのサイズを確認します。

モデルのダウンロード

Summarizer API は、高品質の要約を生成するようにトレーニングされたモデルを使用します。この API は Chrome に組み込まれており、Gemini Nano はウェブサイトがこの API を初めて使用するときにダウンロードされるモデルです。

モデルを使用する準備ができているかどうかを判断するには、非同期の Summarizer.availability() 関数を呼び出します。availability() に対するレスポンスが downloadable の場合、ダウンロードの進捗状況をリッスンして、ユーザーに通知します。ダウンロードには時間がかかる場合があります。

const availability = await Summarizer.availability();

モデルのダウンロードをトリガーして要約ツールを作成するには、ユーザーのアクティベーションを確認してから、非同期の Summarizer.create() 関数を呼び出します。

// Proceed to request batch or streaming summarization
const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API 関数

create() 関数を使用すると、ニーズに合わせて新しい要約オブジェクトを構成できます。次のパラメータを含むオプションの options オブジェクトを受け取ります。

  • sharedContext: 要約に役立つ追加の共有コンテキスト。
  • type: 要約のタイプ。使用できる値は key-points(デフォルト)、tldrteaserheadline です。詳細は下の表をご覧ください。
  • format: 要約の形式。使用できる値は markdown(デフォルト)と plain-text です。
  • length: 要約の長さ。使用できる値は shortmedium(デフォルト)、long です。これらの長さの意味は、リクエストされた type によって異なります。たとえば、Chrome の実装では、短い要約は 3 つの箇条書きで構成され、短い概要は 1 文です。

一度設定したパラメータは変更できません。パラメータを変更する必要がある場合は、新しい要約オブジェクトを作成します。

次の表に、さまざまな種類の要約とその長さを示します。長さは最大値を表します。結果が短くなることもあります。

タイプ 意味 長さ
"tldr" 要約は短く、要点を押さえたものにする必要があります。忙しい読者向けに、入力の概要を簡単に説明します。
short 1 文
3 文
long 5 文
"teaser" 要約は、入力の最も興味深い部分や魅力的な部分に焦点を当て、読者がもっと読みたいと思うように設計する必要があります。
short 1 文
3 文
long 5 文
"key-points" 要約では、入力から最も重要なポイントを抽出し、箇条書きで表示する必要があります。
short 3 つの箇条書き
5 個の箇条書き
long 7 つの箇条書き
"headline" 要約は、記事の見出しの形式で、入力の要点を 1 つの文に効果的に含める必要があります。
short 12 ワード
17 ワード
long 22 ワード

たとえば、要約ツールを初期化して、中程度の長さの要点を Markdown で出力できます。

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
};

const availability = await Summarizer.availability();
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}

// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
  const summarizer = await Summarizer.create(options);
}

要約ツールを実行する

要約ツールを実行する方法は、ストリーミングとバッチ(非ストリーミング)の 2 つあります。

バッチ要約

バッチ要約では、モデルは入力を全体として処理し、出力を生成します。

バッチの概要を取得するには、summarize() 関数を呼び出します。最初の引数は、要約するテキストです。2 つ目の省略可能な引数は、context フィールドを含むオブジェクトです。このフィールドでは、要約の精度を高める可能性がある背景情報を追加できます。

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

ストリーミングの要約

ストリーミング要約では、結果がリアルタイムで提供されます。入力が追加、調整されると、出力は継続的に更新されます。ストリーミングの概要を取得するには、summarize() ではなく summarizeStreaming() を呼び出します。

const longText = document.querySelector('article').innerHTML;
const stream = summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
  console.log(chunk);
}

デモ

Summarizer API は、Summarizer API Playground で試すことができます。

標準化の労力

Google では、クロスブラウザの互換性を確保するため、要約ツール API の標準化に取り組んでいます。

Summarizer API とその他の文章作成支援 API は、W3C WebML ワーキング グループによって採用されています。MozillaWebKit には、標準化に関する立場を尋ねました。

フィードバックを共有

Summarizer API を使用して構築したものをぜひお見せください。XYouTubeLinkedIn で、ウェブサイトやウェブ アプリケーションを共有してください。

Chrome の実装に関するフィードバックについては、バグレポートまたは機能リクエストを送信してください。