概要
Prompt API は、 Gemini Nano を利用してChromeブラウザ内で自然言語処理を実現するAPI。 多様な用途 (AI検索、ニュース分類、コンテンツフィルター等)に活用可能。 対応OSやハードウェア要件 に注意が必要。 拡張機能開発 や マルチモーダル入力 もサポート。 JSON Schema による出力制約やセッション管理も可能。
Prompt APIの概要と用途
- Prompt API は、 Gemini Nano を活用し、ブラウザ内で自然言語リクエストを処理するAPI
- AI検索 :Webページ内容に基づく質問応答の実装
- パーソナライズニュースフィード :記事自動分類とユーザーによるフィルタリング
- カスタムコンテンツフィルター :ユーザー定義トピックに基づく記事の自動ぼかしや非表示
- カレンダーイベント作成 :Webページからイベント情報抽出し、カレンダー登録支援
- 連絡先抽出 :Webサイトから連絡先情報を抽出し、リスト化を支援
- 拡張機能開発 や新しいAI体験の創出
ハードウェア・ソフトウェア要件
- 対応OS :Windows 10/11、macOS 13+ (Ventura以降)、Linux、ChromeOS(Chromebook Plusのみ)
- 非対応 :Chrome for Android/iOS、Chromebook Plus以外のChromeOS
- ストレージ :Chromeプロファイルがあるボリュームに22GB以上の空き容量
- GPU/CPU要件 :
- GPU :4GB超のVRAM必須(音声入力利用時はGPU必須)
- CPU :16GB以上のRAM、4コア以上
- ネットワーク :無制限または非課金の接続
- モデルサイズ確認 :chrome://on-device-internalsで確認可能
利用開始手順とAPIの基本
- モデルのダウンロード :初回利用時に自動ダウンロード
- 利用前に :Googleの生成AI禁止事項ポリシーの承認が必要
- 利用可否確認 :
LanguageModel.availability()で利用可能か判定 - セッション作成 :
LanguageModel.create()で新規セッション開始- ダウンロード進捗 :
downloadprogressイベントで進行状況を取得し、ユーザーに通知
- ダウンロード進捗 :
- ローカル環境での利用 :Chromeのフラグを有効化(chrome://flags/#optimization-guide-on-device-model, chrome://flags/#prompt-api-for-gemini-nano-multimodal-input)
モデルパラメータとセッション管理
- パラメータ取得 :
LanguageModel.params()でtopKやtemperatureのデフォルト値・最大値を取得 - 拡張機能用セッション :topKやtemperatureを個別に指定可能
- AbortSignalによる中断 :
signalフィールドでセッションの中断制御 - 初期プロンプト :
initialPromptsで過去の対話履歴や文脈を付与
応答制約・マルチモーダル対応
- 応答制約 :
prefix: trueで特定形式の応答を誘導 - 期待する入出力形式の指定 :
expectedInputs/expectedOutputsでテキスト・画像・音声など指定- 対応言語 :「en」「ja」「es」(今後追加予定)
- マルチモーダル :画像・音声・テキストを組み合わせたプロンプトも可能
- 例:画像比較、音声応答、画像説明生成
append・JSON Schemaによる応答制御
- append() :セッション作成後にも追加プロンプトを投入し、文脈追加が可能
- JSON Schema :
responseConstraintで応答形式(例:boolean)を厳密指定- 正規表現やJSON Schema を利用した構造化出力
- context window の消費量測定も可能
エラー・トラブルシューティング
- NotSupportedError :未対応の入力や出力指定時に発生
- localhostでのエラー :フラグ設定やChrome再起動で解決を試みる
今後の展望
- 対応言語や機能の拡充 予定
- 新しいChrome拡張機能やAI体験 への応用拡大
Prompt API は、 Chrome拡張機能開発 や Webアプリ において、 高度なAI機能 を手軽に実装できる強力なツール。 ハードウェア要件やAPI仕様 を確認し、 多様なユースケース に活用可能。