公開日: 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 を最新バージョンに更新する必要があります。続いて、次の手順を実行します。
chrome://flags/#proofreader-api-for-gemini-nano
に向かいます。- [有効] を選択します。
- [再起動] をクリックするか、Chrome を再起動します。
オリジン トライアルに登録する
Proofreader API の使用を開始する手順は次のとおりです。
- Google の生成 AI の使用禁止に関するポリシーに同意します。
- Proofreader API オリジン トライアルに移動します。
- [登録] をクリックし、フォームに必要事項を記入します。[ウェブ オリジン] フィールドに、オリジンまたは拡張機能 ID(
chrome-extension://YOUR_EXTENSION_ID
)を入力します。 - [登録] をクリックして送信します。
- 提供されたトークンをコピーし、オリジンの参加しているすべてのウェブページに追加するか、拡張機能のマニフェストに含めます。
- 拡張機能を構築している場合は、拡張機能のオリジン トライアルの手順に沿って操作してください。
- 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 をすべて確認する。