プロンプトAPI
概要
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仕様を確認し、多様なユースケースに活用可能。