Proofreader API

公開日: 2025 年 9 月 12 日

商品の解説 ウェブ 拡張機能 Chrome ステータス インテント
GitHub デベロッパー トライアル デベロッパー トライアル デベロッパー トライアル デベロッパー トライアル 表示 試験運用機能の目的

校正とは、文法、スペル、句読点の誤りを探して修正するプロセスです。ブラウザやオペレーティング システムでは、Google ドキュメントなどの作成ツールで校正機能が提供されるようになっています。

Proofreader API を使用すると、組み込みの AI を使用して、ウェブ アプリケーションや拡張機能にインタラクティブな校正機能を提供できます。この API には次の機能があります。

  • 修正: ユーザー入力の文法、スペル、句読点を修正します。
  • ラベル: エラータイプごとに修正にラベルを付けます。
  • 説明: エラーの内容や、正しい記述が必要な理由を 平易な言葉で説明します。

ユースケース

Proofreader API を使用する理由はさまざまです。たとえば、次のような場合です。

  • 投稿が送信される前に、フォーラム メッセージ、記事へのコメント、メールの修正候補を提示する。
  • メモを取っているときに修正候補を提示する。

ユースケースが見つかりませんか?早期プレビュー プログラムに参加してフィードバックをお寄せください。

始める

Chrome 141 ~ 145 で実施されている Proofreader API オリジン トライアルにご参加ください。

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

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

Language Detector APITranslator API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは動作しません。

Prompt APISummarizer APIWriter APIRewriter APIProofreader API は、次の条件を満たす場合に Chrome で動作します。

  • オペレーティング システム: Windows 10 または 11、macOS 13 以降(Ventura 以降)、 Linux、またはChromebook Plus デバイスの ChromeOS(プラットフォーム 16389.0.0 以降)。 Gemini Nano を使用する API は、Android、iOS、Chromebook Plus 以外のデバイスの ChromeOS 用 Chrome ではまだサポートされていません 。
  • ストレージ: Chrome プロファイルを含むボリュームに 22 GB 以上の空き容量。
  • GPU または CPU: 組み込みモデルは GPU または CPU で実行できます。
    • GPU: 4 GB を超える VRAM。
    • CPU: 16 GB 以上の RAM と 4 個以上の CPU コア。
    • : 音声入力を使用する Prompt API には GPU が必要です。
  • ネットワーク: 無制限のデータまたは従量制課金ではない接続。

Gemini Nano の正確なサイズは、ブラウザがモデルを更新する際に異なる場合があります。現在のサイズを確認するには、chrome://on-device-internals にアクセスしてください。

localhost のサポートを追加する

組み込みの AI API はすべて、Chrome の localhost で使用できます。次のフラグを Enabledに設定します。

  • chrome://flags/#optimization-guide-on-device-model
  • chrome://flags/#prompt-api-for-gemini-nano-multimodal-input
  • chrome://flags/#proofreader-api-for-gemini-nano

[Relaunch] をクリックするか、Chrome を再起動します。エラーが発生した場合は、 localhost のトラブルシューティングを行ってください

オリジン トライアルに登録する

Proofreader API の使用を開始する手順は次のとおりです。

  1. Google の生成 AI の使用禁止に関するポリシーに同意します。
  2. Proofreader API オリジン トライアルに移動します。
  3. [Register] をクリックしてフォームに必要事項を記入します。[ウェブにおけるオリジン] フィールドに、 ウェブにおけるオリジンまたは 拡張機能 ID chrome-extension://YOUR_EXTENSION_ID を入力します。
  4. [Register] をクリックして送信します。
  5. 提供されたトークンをコピーして、オリジンの参加しているすべてのウェブページに追加するか、拡張機能のマニフェストに含めます。
  6. Proofreader API の使用を開始します。

詳しくは、オリジン トライアルの開始方法をご覧ください。

Proofreader API を使用する

モデルを使用できる状態かどうかを確認するには、 Proofreader.availability() を呼び出します。 へのレスポンスが "downloadable" の場合は、ダウンロードの進捗状況をリッスンしてユーザーに通知します。ダウンロードには時間がかかる場合があります。availability()

const options = {
  expectedInputLanguages: ['en'],
};
const available = if (Proofreader.availability("downloadable") === true);

ダウンロードをトリガーして校正機能をインスタンス化するには、 ユーザーのアクティベーションを確認します。次に、非同期の Proofreader.create() 関数を呼び出します。

const session = await Proofreader.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
  ...options,
});

Proofreader オブジェクトを作成する

Proofreader を作成するには、Proofreader.create() 関数を使用します。

const proofreader = await Proofreader.create({
  expectedInputLanguages: ["en"],
  monitor(m) {
    m.addEventListener("downloadprogress", e => {
      console.log(Downloaded ${e.loaded * 100}%);
    });
  }
};

create() メソッドには次のオプションがあります。

  • expectedInputLanguages: 想定される入力言語の配列。

商品の解説の includeCorrectionTypes オプションと includeCorrectionExplanation オプションはサポートされていません。

ユーザー テキストの校正を開始する

proofread() を呼び出して、入力テキストの修正候補を取得します。

const proofreadResult = await proofreader.proofread(
  'I seen him yesterday at the store, and he bought two loafs of bread.',
);

修正候補は ProofreadResult の一種です。完全に修正された入力は correctedInput 属性に、修正候補のリストは corrections 配列にあります。

let inputRenderIndex = 0;

console.log(proofreadResult.correction);

for (const correction of proofreadResult.corrections) {
  // Render part of input that has no error.
  if (correction.startIndex > inputRenderIndex) {
    const unchangedInput = document.createElement('span');
    unchangedInput.textContent = input.substring(inputRenderIndex, correction.startIndex);
    editBox.append(unchangedInput);
  }
  // Render part of input that has an error and highlight as such.
  const errorInput = document.createElement('span');
  errorInput.textContent = input.substring(correction.startIndex, correction.endIndex);
  errorInput.classList.add('error');
  editBox.append(errorInput);
  inputRenderIndex = correction.endIndex;
}

// Render the rest of the input that has no error.
if (inputRenderIndex !== input.length){
  const unchangedInput = document.createElement('span');
  unchangedInput.textContent = input.substring(inputRenderIndex, input.length);
  editBox.append(unchangedInput);
}

権限ポリシー、iframe、ウェブワーカー

デフォルトでは、Proofreader API はトップレベル ウィンドウとその同一オリジンの iframe でのみ使用できます。権限ポリシー allow="" 属性を使用すると、API へのアクセス権をクロスオリジン iframe に委任できます。

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Proofreader API by
  setting the `allow="proofreader"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="proofreader"></iframe>

Proofreader API はウェブワーカーでは使用できません。これは、権限ポリシーのステータスを確認するために、各ワーカーの責任あるドキュメントを確立することが複雑であるためです。

デモ

Proofreader API のプレイグラウンドを試して、 ソースコードを確認してください。

意見交換とフィードバックの提供

Proofreader API は現在議論されており、今後変更される可能性があります。この API を試してフィードバックがございましたら、ぜひお聞かせください。

ブラウザで大規模言語モデルを含むモデルを使用する組み込みの AI API をすべて確認する。