次の方法で共有


Proofreader API を使用して文法とスペルを修正する

Proofreader API は、Web サイトまたはブラウザー拡張機能の JavaScript コードから Microsoft Edge に組み込まれている小さな言語モデル (SLM) を使用して、テキストの文法、スペル、句読点のエラーを修正できる実験的な Web API です。

Proofreader API の概要については、「 Proofreader API Explainer」を参照してください。

詳細な内容:

Proofreader API の可用性

Proofreader API は、バージョン 142 以降の Microsoft Edge Canary または Dev チャネルで開発者プレビューとして利用できます。

Proofreader API は、テキスト コンテンツの文法、スペル、句読点のエラーを修正するように最適化されています。 これらの API によって提供されない可能性がある、より多くのカスタム プロンプト エンジニアリング シナリオの代替方法の詳細については、「 Prompt API を使用して組み込みの言語モデルをプロンプトする」を参照してください。

使用する API を決定する

Web サイトとブラウザー拡張機能で AI 機能を活用するには、次のメソッドも使用できます:

Proofreader API では、モデルの入力と出力が使用されているのと同じデバイス上で実行される小さな言語モデル (SLM) が使用されます (つまり、ローカル)。 これには、クラウドベースのソリューションと比較して次の利点があります:

  • コスト削減: クラウド AI サービスの使用に関連するコストはありません。

  • ネットワークの独立性: 初期モデルのダウンロード以外に、モデルのプロンプトを表示するときのネットワーク待機時間はなく、デバイスがオフラインのときにモデルを使用することもできます。

  • プライバシーの強化: モデルに入力されたデータはデバイスから離れることはなく、収集されません (AI モデルのトレーニングなど)。

Proofreader API は、Microsoft Edge によって提供され、ブラウザーに組み込まれているモデルを使用します。これには、WebGPU、WebNN、WebAssembly に基づくカスタム ローカル ソリューションよりも追加の利点があります。

  • 共有 1 回限りのコスト: ブラウザーで提供されるモデルは、API が初めて呼び出されたときにダウンロードされ、ブラウザーで実行されるすべての Web サイトでモデルが共有され、ユーザーと開発者のネットワーク コストが削減されます。

  • Web 開発者向けの簡略化された使用方法: 組み込みのモデルは、単純な Web API を使用して実行でき、AI/ML の専門知識やサードパーティのフレームワークを使用する必要はありません。

Phi-4 ミニ モデル

Proofreader API は、Microsoft Edge に組み込まれている Phi-4-mini モデルを使用します。 Phi-4-mini は、テキストベースのタスクに優れた強力な小さな言語モデルです。 Phi-4-mini とその機能の詳細については、microsoft/Phi-4-mini-instruct のモデル カードを参照してください。

免責事項

他の言語モデルと同様に、Phi ファミリのモデルは、不公平、信頼性の低い、または不快感を与える方法で動作する可能性があります。 詳細については、「 責任ある AI に関する考慮事項」を参照してください。

ハードウェア要件

Proofreader API 開発者プレビューは、予測可能な品質と待機時間を持つ Small Language Model (SLM) 出力を生成するハードウェア機能を備えるデバイスで動作することを目的としています。

Proofreader API には、次の要件があります。

  • オペレーティング システム: Windows 10 または 11 および macOS 13.3 以降。

  • ストレージ: Edge プロファイルを含むボリュームで 20 GB 以上使用できます。 使用可能なストレージが 10 GB を下回ると、他のブラウザー機能が機能するのに十分な領域を確保するためにモデルが削除されます。

  • GPU: 5.5 GB 以上の VRAM。

  • ネットワーク: 無制限データ プランまたは測定されていない接続。 従量制課金接続を使用している場合、モデルはダウンロードされません。

デバイスで Proofreader API 開発者プレビューがサポートされているかどうかをチェックするには、以下の「Proofreader API を有効にする」を参照し、デバイスのパフォーマンス クラスをチェックします。

Proofreader API の実験的な性質により、特定のハードウェア構成に関する問題が発生する可能性があります。 特定のハードウェア構成に関する問題が発生した場合は、MSEdgeExplainers リポジトリで新しいイシューを開いてフィードバックをお寄せください。

モデルの可用性

Web サイトが組み込みの AI API を初めて呼び出す場合は、モデルの初回ダウンロードが必要です。 新しい Proofreader API セッションを作成するときに、monitor オプションを使用してモデルのダウンロードを監視できます。 以下 の「モデルのダウンロードの進行状況を監視する」を参照してください。

Proofreader API を有効にする

Microsoft Edge で Proofreader API のいずれかを使用するには:

  1. 最新バージョンの Microsoft Edge Canary または Dev (バージョン 142 以降) を使用していることを確認します。 「Microsoft Edge Insider になる」を参照してください。

  2. Microsoft Edge Canary または Dev で、新しいタブまたはウィンドウを開き、edge://flags に移動します。

  3. 検索ボックスで、ページの上部にある「 Proofreader API for Phi mini」と入力します。

    ページがフィルター処理され、一致するフラグが表示されます。

  4. Proofreader API for Phi ミニ フラグの横にある [有効] を選択します。

    ブラウザーのフラグ ページ

  5. 必要に応じて、問題のデバッグに役立つ可能性がある情報をローカルにログに記録するには、デバイス AI モデルのデバッグ ログ フラグを有効にします。

  6. Microsoft Edge Canary または Dev を再起動します。

  7. デバイスが Proofreader API 開発者プレビューのハードウェア要件を満たしているかどうかをチェックするには、新しいタブを開き、[edge://on-device-internals] に移動し、[デバイス パフォーマンス クラス] の値をチェックします。

    デバイス のパフォーマンス クラスが High 以上の場合、Proofreader API はデバイスでサポートされることが予想されます。 問題が引き続き発生する場合は、 新しい問題を提出してください。

動作する例を見る

Proofreader API の動作を確認し、これらの API を使用する既存のコードを調べるには、

  1. 上で説明したように、Proofreader API を有効にします

  2. Microsoft Edge Canary または Dev ブラウザーで、タブまたはウィンドウを開き、 Proofreader API プレイグラウンドに移動します。

  3. 上部の情報バナーで、状態をチェックします。 状態は、最初に On-device API とモデルのダウンロードを読み取ります。

    モデルのダウンロードの進行状況を示す状態インジケーター

    モデルのダウンロード後、情報バナーは オンデバイス API と使用可能なモデルを読み取り、API とモデルを使用できることを示します。

    メッセージを示す情報バナー: オンデバイス API とモデルの準備完了。

    モデルのダウンロードが開始されない場合は、Microsoft Edge を再起動してやり直してください。

    Proofreader API は、特定のハードウェア要件を満たすデバイスでのみサポートされます。 詳細については、上記の「ハードウェア要件」を参照してください。

  4. 必要に応じて、ページのコンテンツと設定を変更します。 たとえば、テキストを校正に変更したり、予想される入力言語を変更したりします。

  5. ページの下部にある [ 校正 ] ボタンをクリックします。

    出力は、ページの応答セクションで生成されます。

    設定と校正ボタンを含む Proofreader デモ ページ

関連項目:

Proofreader API を使用する

API が有効かどうかを確認する

Web サイトのコードで Proofreader API を使用する前に、Proofreader オブジェクトの存在をテストして、API が有効になっていることをチェックします。

if (!Proofreader) {
  // The Proofreader API is not available.
}

モデルを使用できるかどうかを確認する

Proofreader API は、デバイスがモデルの実行をサポートしている場合、および言語モデルとモデル ランタイムが Microsoft Edge によってダウンロードされた後にのみ使用できます。

API を使用できるかどうかを確認するには、availability() メソッドを使用します:

const availability = await Proofreader.availability();

if (availability == "unavailable") {
  // The model is not available.
}

if (availability == "downloadable" || availability == "downloading") {
  // The model can be used, but it needs to be downloaded first.
}

if (availability == "available") {
  // The model is available and can be used.
}

新しいセッションを作成する

セッションを作成すると、言語モデルをメモリに読み込んで使用できるようにブラウザーに指示されます。 Proofreader API を使用してテキストを修正する前に、 create() メソッドを使用して新しいセッションを作成します。

// Create a Proofreader session.
const session = await Proofreader.create();

モデル セッションをカスタマイズするには、create() メソッドにオプションを渡します:

// Create a Proofreader session with options.
const session = await Proofreader.create(options);

使用可能なオプションを次に示します。

オプション 説明
monitor モデルのダウンロードの進行状況を監視するために使用される関数。 以下 の「モデルのダウンロードの進行状況を監視する」を参照してください。
expectedInputLanguages 文字列の配列を指定します。 各文字列は、入力テキストに含まれると想定される言語です。 例: ["en", "es"]
モデルのダウンロードの進行状況を監視する

monitor オプションを使用して、モデルのダウンロードの進行状況を追跡できます。 これは、モデルが使用されるデバイスにまだ完全にダウンロードされていない場合に役立ち、ユーザーに待機するように通知します。

// Create a Proofreader session with the monitor option to monitor the model
// download.
const session = await Proofreader.create({
  monitor: m => {
    // Use the monitor object argument to add an listener for the 
    // downloadprogress event.
    m.addEventListener("downloadprogress", event => {
      // The event is an object with the loaded and total properties.
      if (event.loaded == event.total) {
        // The model is fully downloaded.
      } else {
        // The model is still downloading.
        const percentageComplete = (event.loaded / event.total) * 100;
      }
    });
  }
});

Proofreader API を実行する

Proofreader API を使用して変更されたテキストを生成するには、対応するモデル セッションを作成した後、 session.proofread() メソッドを使用します。 このメソッドは、Proofreader API が修正されたテキストの生成を完了した後に解決される promise を返します。

// Create a Proofreader session.
const session = await Proofreader.create();

// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);

// Use the result.
console.log(result);

Proofreader API の結果を使用する

session.proofread() メソッドは、次のプロパティを持つオブジェクトに解決される promise を返します。

プロパティ 説明
correctedInput 文字列として修正されたテキスト。
corrections 修正オブジェクトの配列。

修正オブジェクトには、次のプロパティがあります。

プロパティ 説明
startIndex 修正された入力テキストの最初の文字のインデックス。
endIndex 修正された入力テキストの最後の文字のインデックス。
correction 正しくないテキストを置き換える文字列。

次の例は、 session.proofread() メソッドの結果を使用する方法を示しています。

// Create a Proofreader session.
const session = await Proofreader.create();

// Correct the text and wait for the result.
const result = await session.proofread(textToBeCorrected);

// Log the corrected text.
console.log("Corrected text:", result.correctedInput);

// Log each correction.
result.corrections.forEach(({ startIndex, endIndex, correction }) => {
  const initialText = textToBeCorrected.slice(startIndex, endIndex);
  console.log(`Replaced text "${initialText}" (index ${startIndex} to ${endIndex}) with "${correction}"`);
});

セッションを破棄する

セッションを破棄して、言語モデルが不要であることをブラウザーに知らせ、モデルをメモリからアンロードできるようにします。

セッションは、次の 2 つの方法で破棄できます:

  • destroy() メソッドを使用すると。
  • AbortController を使用すると。
destroy() メソッドを使用してセッションを破棄する

session.destroy() メソッドを使用して、Proofreader セッションを破棄できます。

const session = await Proofreader.create();

// Later, destroy the session by using the destroy method.
session.destroy();
AbortController を使用してセッションを破棄する

または、 AbortController オブジェクトを作成し、 Proofreader セッションを作成してから、 abort()を呼び出すことができます。

// Create an AbortController object.
const controller = new AbortController();

// Create a Proofreader session and pass the 
// AbortController signal object by using the signal option.
const session = await Proofreader.create({ signal: controller.signal });

// Later, such as when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

フィードバックの送信

Proofreader API を使用するシナリオの範囲、API または言語モデルに関する問題、新しいタスク固有の API が役に立つかどうかについて、非常に関心があります。

シナリオと達成するタスクに関するフィードバックを送信するには、 Proofreader API フィードバックの問題にコメントを追加してください。

代わりに API を使用する際に問題が発生した場合は、リポジトリに報告してください

また、W3C Web Machine Learning ワーキング グループ リポジトリの Proofreader API の設計に関するディスカッションに投稿することもできます。

関連項目