ML Kit の生成 AI API の概要

ML Kit の GenAI API は、Gemini Nano のパワーを活用して、アプリがタスクを実行できるようにします。これらの API は、高度なインターフェースを通じて、一般的なユースケースにすぐに使用できる品質を提供します。ML Kit GenAI API は AICore をベースに構築されています。AICore は、生成 AI 基盤モデルのオンデバイス実行を可能にする Android システム サービスです。ローカルでデータを処理することで、アプリの機能強化やユーザーのプライバシー保護の強化などの機能を実現します。

ML Kit GenAI API は、次の機能をサポートしています。

  • 要約: 記事やチャットの会話を箇条書きで要約します。
  • 校正: 文法を修正し、スペルミスを修正して、短いコンテンツを洗練します。
  • 書き換え: 短いメッセージをさまざまなトーンやスタイルで書き換えます。
  • 画像の説明: 指定された画像の簡単な説明を生成します。

生成 AI API のメリット

他の既存の ML Kit 機能と同様に、GenAI API は完全にオンデバイスで実行されるため、次のようなメリットがあります。

  • 入力データ、推論データ、出力データはローカルで処理される
  • 安定したインターネット接続がない場合でも機能は変わりません
  • API 呼び出しごとに追加のサーバー費用が発生しない

また、GenAI API は AICore を基盤として構築され、Gemini Nano を搭載しているため、すべてのアプリはデバイス上の共有 Gemini Nano モデルを使用できます。これにより、モデルがデバイスにすでに存在する場合に、モデルのダウンロードを待つ必要がなくなり、ストレージ容量を節約できます。AICore がリクエストを分離してプライバシーを保護する方法について学習する。

ストリーミングと非ストリーミング

ML Kit GenAI API では、結果を受信するストリーミング オプションと非ストリーミング オプションの両方が用意されています。ストリーミング API は、レスポンスが生成されるたびに段階的に配信し、データの継続的なフローを提供します。一方、非ストリーミング API は、レスポンス全体が完了するまで待機してから、単一のブロックとして返します。

長いレスポンスには、ストリーミング API を選択します。これにより、初期フィードバックを迅速に取得できます。非ストリーミング API は、短いレスポンスや結果を一括で処理する場合に適しています。

デバイスのサポート

ML Kit GenAI API は、以下のデバイスで利用できます。今後、サポート対象のデバイスを拡大する予定です。

  • Google: Google Pixel 9、Google Pixel 9 Pro、Google Pixel 9 Pro XL、Google Pixel 9 Pro Fold
  • Honor: Honor 400 Pro、Magic 6 Pro、Magic 6 RSR、Magic 7、Magic 7 Pro、Magic V3
  • iQOO: iQOO 13
  • Motorola: Razr 60 Ultra
  • OnePlus: OnePlus 13、OnePlus 13s
  • OPPO: Find N5、Find X8、Find X8 Pro
  • POCO: POCO F7 Ultra
  • realme: realme GT 7 Pro
  • Samsung: Galaxy S25、Galaxy S25+、Galaxy S25 Ultra
  • vivo: vivo X200、vivo X200 Pro、vivo X Fold3 Pro、vivo X Fold5
  • Xiaomi: Xiaomi 15 Ultra、Xiaomi 15

特定の言語のサポートの利用可否は、特定のデバイスの構成と、デバイスにダウンロードされたモデルによって異なる場合があります。

アプリケーションあたりの割り当て

AICore はアプリごとに推論割り当てを適用します。つまり、短期間に GenAI API リクエストを過剰に送信すると、ErrorCode.BUSY レスポンスが返されます。このようなエラーを受け取った場合は、指数バックオフを使用してリクエストを再試行することを検討してください。

バックグラウンドでの使用

GenAI API の推論は、アプリがトップ フォアグラウンド アプリケーションの場合にのみ許可されます。アプリがフォアグラウンドにないときに API を使用すると(フォアグラウンド サービスの使用を含む)、現在のところバックグラウンド使用量の割り当てがないため、ErrorCode.BUSY レスポンスが返されます。

サンプルコード

このコードを取得するには、次のサンプルをご覧ください。