Chrome内蔵AI(Prompt API)の導入と初期セットアップ手順

ブラウザローカル環境で推論を完結させるための実行基盤構築と疎通確認手順

Chrome内蔵AIとは

Chrome内蔵AI(Prompt API)は、Google Chromeブラウザの中に組み込まれた小型AIモデルを手元のPC上で直接動かす仕組みである。ChatGPTなどのクラウドサービスにアクセスするのではなく、ブラウザ自体が持っている推論エンジンをJavaScriptから直接呼び出して利用する。手元のPCリソースを使ってブラウザ単体で処理が完結するため、特別なサーバーや外部サービスを用意する必要がない。

導入するメリット

  • データを外部に送信せず、手元だけで処理が完結する:
    入力したテキストや処理対象のデータが外部サーバーへ送信されない。社内文書や個人情報が絡むテキストを扱う場合でも、情報漏洩のリスクを気にせず手元で安全に処理できる。
  • APIキーの管理や利用料金が一切かからない:
    クラウドAPIを利用する際に必要なアカウント登録、クレジットカード設定、APIキーの厳重な管理、月々の従量課金が不要である。モデルさえ一度ダウンロードしてしまえば、完全オフラインの状態でもそのまま動作する。
  • 自作のChrome拡張機能へ手軽に組み込める:
    バックエンドサーバーの構築や認証処理を挟む必要がなく、ブラウザの標準的なJavaScriptコードだけで直接AIを呼び出せる。日常のブラウザ操作やちょっとした業務ルーティンを効率化する自作ツールに、最小限の手間でAI機能を追加できる。

セットアップの全体フロー

本機能は現在Chromeの試験運用フラグとして提供されている。以下の手順でブラウザ設定を行い、モデルの取得と疎通確認を進める。

Step 01 動作確認環境の確認

本手順の検証を行ったPCスペックおよびブラウザ環境の諸元。

Step 02 Flags の有効化

Chromeのフラグ設定を開き、Prompt APIを有効化して再起動する。

Step 03 モデル取得と検証

Console上でダウンロードを実行し、推論の疎通確認を行う。

1. 動作確認時の環境(実績値)

2026年10月26日時点で動作確認を行った環境の諸元は以下の通りである。専用グラフィックボード(dGPU)を持たない、内蔵GPU構成の一般的なノートPC環境における実績値となる。

ブラウザGoogle Chrome 155.0.8059.86(Windows 64bit)
OSWindows 11
CPU / GPUAMD Ryzen 7 7730U with Radeon Graphics(内蔵GPU / VRAM 496 MB)
メインメモリ(RAM)16.0 GB
ストレージ空き容量264 GB(検証時の空き容量)

2. Chrome Flags の設定(Chrome 155 仕様)

ブラウザの試験運用機能設定から、内蔵AIのAPI呼び出しを有効化する。

  • 1
    フラグ画面の呼び出し
    アドレスバーに chrome://flags を入力してEnterキーを押す。
  • 2
    対象フラグの検索
    最上部の検索欄に prompt または prompt-api と入力する。
  • 3
    機能の有効化
    表示された Prompt API(#prompt-api)右側のセレクトボックスを Enabled に変更する。
  • 4
    ブラウザの再起動
    画面右下に表示される Relaunch ボタンを押下し、Chromeを再起動して設定を反映させる。

3. モデルのダウンロードと疎通確認(DevTools)

フラグを有効化した直後は、ローカルストレージ内にAIモデル実体(約1.5GB〜2GB)が存在しない。デベロッパーツール(DevTools)のConsoleからAPIを呼び出し、モデルの初回ダウンロードと推論テストを実行する。

  • 1
    任意のWebページで F12 キー(Macは Cmd + Option + I)を押し、「Console」タブを選択する。
  • 2
    以下のスクリプトをコピーしてコンソールへ貼り付け、Enterキーで実行する。
console.log("モデルの状態を確認中...");

// 1. APIの存在確認
if (typeof LanguageModel === "undefined") {
  console.error("LanguageModel APIが見つかりません。chrome://flags を確認してください。");
} else {
  // 2. 利用可能性の照会
  const status = await LanguageModel.availability({
    expectedInputs: [{ type: "text", languages: ["ja"] }],
    expectedOutputs: [{ type: "text", languages: ["ja"] }]
  });
  console.log("現在のステータス:", status); // 最初は 'downloadable' になる

  // 3. ダウンロードのトリガーと進捗監視
  console.log("ダウンロードを開始します(約1.5GB〜2GB)...");
  const session = await LanguageModel.create({
    initialPrompts: [
      { role: "system", content: "あなたは親切なAIアシスタントです。日本語で回答してください。" }
    ],
    monitor(m) {
      m.addEventListener("downloadprogress", (e) => {
        console.log(`ダウンロード進捗: ${Math.round(e.loaded * 100)}%`);
      });
    }
  });

  // 4. テスト推論の実行
  console.log("ダウンロード完了。推論テストを実行します...");
  const response = await session.prompt("自己紹介を日本語で1文でしてください。");
  console.log("AIの返答:\n", response);

  // 5. リソース解放
  session.destroy();
}

実行結果と技術的挙動

  • 初回ダウンロード処理:
    初回実行時はコンソールに進捗状況(ダウンロード進捗: XX%)が出力される。進捗が100%に達すると自動的にテスト推論が行われ、AIからの回答テキストが返却される。
  • 完了後のステータス遷移:
    一度ダウンロードが完了すると、LanguageModel.availability() は available(または readily)を返すようになる。以降はオフライン環境下であっても即座にローカル推論セッションが起動する。
  • メモリ管理の実装要件:
    ローカルLLMはシステムメモリを占有するため、推論終了時は session.destroy() を明示的に実行し、不要になったセッションを破棄してメモリリークを防ぐ必要がある。