Proofreader API

公開日: 2025 年 9 月 4 日

商品の解説 ウェブ 拡張機能 Chrome ステータス インテント
GitHub オリジン トライアル オリジン トライアル オリジン トライアル オリジン トライアル 表示 プロトタイプを作成する目的

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

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

  • 修正: ユーザーの入力の文法、スペル、句読点を修正します。
  • ラベル: エラータイプごとに修正にラベルを付けます。
  • 説明: エラーの内容や修正が必要だった理由をわかりやすく説明します。

ユースケース

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

  • 投稿が送信される前に、フォーラム メッセージ、記事へのコメント、メールの修正を提案します。
  • メモの作成中に修正候補を表示します。

ユースケースが見つからない場合は、早期プレビュー プログラムに参加して、フィードバックをお寄せください。

始める

Chrome 141 ~ 145 で実施される Proofreader API のオリジン トライアルに参加する。

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

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

言語検出 API と翻訳 API は、パソコン版 Chrome で動作します。これらの API はモバイル デバイスでは動作しません。プロンプト API、要約 API、ライター API、書き換え API、校正 API は、次の条件を満たす場合に Chrome で動作します。

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

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

localhost のサポートを追加

オリジン トライアル中に localhost で Proofreader API にアクセスするには、Chrome を最新バージョンに更新する必要があります。続いて、次の手順を実行します。

  1. chrome://flags/#proofreader-api-for-gemini-nanoに向かいます。
  2. [有効] を選択します。
  3. [再起動] をクリックするか、Chrome を再起動します。

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

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

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

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

Proofreader API を使用する

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

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.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 の一種です。corrected 属性で完全に修正された入力を見つけ、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);
}

Permission Policy、iframe、Web Worker

デフォルトでは、Proofreader API はトップレベル ウィンドウとその同一オリジンの iframe でのみ使用できます。API へのアクセスは、Permission Policy の allow="" 属性を使用してクロスオリジン 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 は Web Worker では使用できません。これは、Permissions Policy のステータスを確認するために、各ワーカーの担当ドキュメントを確立する複雑さが原因です。

デモ

校正ツール API プレイグラウンドで試してみます。

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

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

  • 説明を読む、質問をする、ディスカッションに参加する。
  • Chrome での実装については、Chrome のステータスで確認してください。
  • Mozilla Standards position と WebKit Standards position をご覧ください。
  • 早期プレビュー プログラムに参加して、新しい API をいち早く確認し、メーリング リストにアクセスしましょう。
  • Chrome の実装についてフィードバックがある場合は、Chromium のバグを報告してください。

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