ML Kit の GenAI API は、Gemini Nano の機能を活用して、アプリがオンデバイスの生成 AI タスクを実行できるようにします。これらの API は、オンデバイス基盤モデルを管理し、ユーザーデータのプライバシーを維持しながら推論を高速化する Android システム サービスである AICore を基盤として構築されています。
GenAI API の使用には、ML Kit GenAI API 追加利用規約が適用されます。デベロッパーは、API クライアントの安全性とアプリのユーザー エクスペリエンスについて全責任を負います。
主な機能
ML Kit は、GenAI 機能を次のカテゴリに分類しています。
カスタム生成とエージェント
Gemini Nano 基盤モデルを直接操作して、カスタム プロンプトと Agentic Workflows を作成します。
- 直接モデルアクセス(
GenerativeModelクラスを使用): カスタムのテキストのみまたはマルチモーダル プロンプトからテキストまたは型付き構造化出力を生成します。また、USERロールとMODELロール、sessionId値を持つList<Content>オブジェクトを使用して、独自のマルチターン チャット履歴を直接管理し、ツール宣言を直接管理します。 - Agentic Workflows(
AgentRunnerクラスを使用):GenerativeModelクラスをベースに構築され、マルチターン セッション管理(メモリ内会話履歴を含む)とマルチステップ ツール呼び出しループを自動化します。
音声
デバイス上で音声の音声文字変換、翻訳、合成を行う:
テキストと画像のタスク
プロンプト エンジニアリングなしで、一般的なビジョン、ライティング、検索タスクに最適化されたタスク固有の API を使用します。
生成 AI API のメリット
既存の他の ML Kit 機能と同様に、GenAI API は完全にオンデバイスで実行されるため、次のようなメリットがあります。
- 入力、推論、出力データはローカルで処理される
- 安定したインターネット接続がなくても機能は変わらない
- API 呼び出しごとに追加のサーバー費用が発生しない
また、GenAI API は AICore 上に構築され、Gemini Nano を利用しているため、アプリとタスク固有の API は、デバイス上で同じ Gemini Nano ベースモデルを共有します。これにより、Gemini Nano がすでにデバイスに存在する場合に、別のモデルがダウンロードされるのを待つ必要がなくなり、ストレージ容量を節約できます。詳しくは、AICore がリクエストを分離してプライバシーを保護する仕組みをご覧ください。
ストリーミングと非ストリーミング
ML Kit GenAI API には、結果を受信するためのストリーミング オプションと非ストリーミング オプションの両方が用意されています。ストリーミング API は、レスポンスが生成されるたびに段階的にレスポンスを配信し、継続的なデータフローを提供します。一方、非ストリーミング API は、レスポンス全体が完了するまで待機してから、単一のブロックとして返します。
長いレスポンスには、初期フィードバックを迅速に取得できるストリーミング API を選択します。非ストリーミング API は、短いレスポンスや、結果をバッチ処理する場合に適しています。
デバイスのサポート
カスタム生成、エージェント、テキストと画像のタスク API のデバイス サポートについては、以降のセクションで説明します。このセクションに記載されていない機能については、個々の機能ページでデバイスのサポート情報をご覧ください。
カスタム生成とエージェント デバイスのサポート
直接モデルアクセスとAgentic Workflowsは、次のデバイスでサポートされています。
nano-v2 |
|
nano-v3 |
|
nano-v4 |
|
テキストと画像のタスクのデバイス サポート
画像の説明、要約、校正、書き換えの API は、次のデバイスで利用できます。今後、サポート対象のデバイスを拡大する予定です。
- Google: Google Pixel 11、Google Pixel 11 Pro、Google Pixel 11 Pro XL、Google Pixel 11 Pro Fold、Google Pixel 10、Google Pixel 10 Pro、Google Pixel 10 Pro XL、Google Pixel 10 Pro Fold、Google Pixel 9、Google Pixel 9 Pro、Google Pixel 9 Pro XL、Google Pixel 9 Pro Fold
- Honor: Honor 400 Pro、Magic 7、Magic 7 Pro、Magic 8 Pro、Magic V5
- iQOO: iQOO 13、iQOO 15
- Lenovo: Lenovo Idea Tab Pro Gen 2、Lenovo Legion Tab Gen 5(8.8 インチ)
- Motorola: Razr 60 Ultra、Razr Ultra 2025、Signature
- OnePlus: OnePlus 15、OnePlus 15R、OnePlus 13、OnePlus 13s
- OPPO: Find N5、Find X9、Find X9 Pro、Find X8、Find X8 Pro、Reno 14 Pro 5G、Reno 15 Pro 5G、Reno 15 Pro Mini 5G、Reno 15 Pro Max 5G
- POCO: POCO F7 Ultra、POCO F8 Pro、POCO F8 Ultra、POCO X7 Pro、POCO X8 Pro
- realme: realme GT 7 Pro、realme GT 7T
- Samsung: Galaxy S25、Galaxy S25+、Galaxy S25 Ultra、Galaxy S26、Galaxy S26+、Galaxy S26 Ultra、Galaxy Z Flip8、Galaxy Z Fold8、Galaxy Z Fold8 Ultra、Galaxy Z Fold7、Galaxy Z TriFold
- シャープ: AQUOS R11
- Sony: Xperia 1 VIII
- vivo: vivo X200T、vivo X200 FE、vivo X200、vivo X200 Pro、vivo X300、X300 Pro、vivo X Fold3 Pro、vivo X Fold5、vivo T4 Ultra
- Xiaomi: Xiaomi 14T Pro、Xiaomi 15、Xiaomi 15T、Xiaomi 15T Pro、Xiaomi 15 Ultra、Xiaomi 17、Xiaomi 17 Ultra、Xiaomi Pad Mini
特定の言語サポートの提供状況は、特定のデバイスの構成と、デバイスにダウンロードされたモデルによって異なる場合があります。
Gemini Nano のバージョンを取得する
Gemini Nano の異なるバージョンが異なるデバイスで実行されます。デバイス上の Gemini Nano のバージョンを返すには、getBaseModelName() メソッドを使用します。
アプリケーションごとの割り当て
AICore は、アプリごとに推論割り当てを適用します。短期間に GenAI API リクエストを過剰に送信すると、ErrorCode.BUSY レスポンスが返されます。このようなエラーが発生した場合は、指数バックオフを使用してリクエストを再試行することを検討してください。また、アプリが長期間の割り当て(1 日の割り当てなど)を超過した場合にも、ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED が返されることがあります。
バックグラウンドでの使用状況
GenAI API 推論は、アプリがトップ フォアグラウンド アプリケーションである場合にのみ許可されます。アプリがフォアグラウンドにないときに API を使用すると(フォアグラウンド サービスの使用を含む)、ErrorCode.BACKGROUND_USE_BLOCKED レスポンスが返されます。
サンプルコード
このコードを取得するには、次のサンプルをご覧ください。