Firebase AI Logicを使ってAI機能を組み込む際に見ておくべきドキュメント・サンプル


Firebase AI Logic(旧 Vertex AI in Firebase)は、Firebase の一部であり、**AI 機能をモバイルアプリに組み込むためのツール**です。これにより、開発者は**高度な AI 機能を簡単に実装**でき、ユーザーエクスペリエンスを向上させることができます。

たとえば、Google のサンプルアプリでは記事を要約する機能が組み込まれています。画像を生成したり、カメラなどで撮影した画像から情報を推論することも可能です。
また、最近は Gemini Live にも対応したので、よりインタラクティブに AI とやり取りできるようになりました。

このたび個人アプリにて Firebase AI Logic を使ってみたので、参考にしたリンクなどをご紹介します。(とはいえ、公式のリソースだけです)

簡単な使い方ですが、それなりに公式のドキュメントを見ていけば実装できるものの、量もそれなりにあるため、ポイントとなるものをピックアップします。
その際はざっくりどういうものを知るべきかまとめていきます。
また公式のドキュメント以外にも、公式サンプルがあったりするのでご紹介します。

※今回、自分が Firebase AI Logic を使っていて気付いたポイントやノウハウなどはあまり出しません。別の機会にします。

※課金が発生するサービスなので、本記事は最初の足がかりにするとか、参考にする程度に進めて、自己責任で開発してください。公式のドキュメント等を熟読されることをおすすめします。

## 目次

- [Firebase AI Logic](#firebase-ai-logic)
- [進み方](#進み方)
- [公式ドキュメント](#公式ドキュメント)
  - [始める](#始める)
  - [機能を理解する](#機能を理解する)
  - [カスタマイズ](#カスタマイズ)
  - [本番環境](#本番環境)
- [公式サンプル](#公式サンプル)
  - [ai-samples/ai-catalog](#ai-samplesai-catalog-at-main--androidai-samples)
  - [android/androidify](#androidandroidify-sample-app-for-androidify)
- [まとめ](#まとめ)

## 進み方

そんなに長い記事でもないので順番に読んでもいいと思いますが、
サンプルから入るという方法もあると思うので、その方が良い方は**サンプルのセクションを先に見てください**。

## 公式ドキュメント

### 始める

- [Firebase AI Logic を使用する Gemini API](https://firebase.google.com/docs/ai-logic?hl=ja&_gl=1*gd5x7a*_up*MQ..*_ga*Mzc4Mjc0NTAyLjE3NDk5NDk4NTc.*_ga_CW55HF8NVT*czE3NDk5NDk4NTYkbzEkZzAkdDE3NDk5NDk4NTYkajYwJGwwJGgw)

上記公式のドキュメントです。こちらのページの概要を読んで、最初に「[使ってみる](https://firebase.google.com/docs/ai-logic/get-started?hl=ja&_gl=1*1v38vr9*_up*MQ..*_ga*MjAyNDg3NjA5MS4xNzQ5OTQ5OTU4*_ga_CW55HF8NVT*czE3NDk5NDk5NTgkbzEkZzAkdDE3NDk5NDk5NTgkajYwJGwwJGgw&api=dev)」で試してみると良いのではないかと思います。

Swift, Android/Kotlin, Flutter などで組み込むことができます。Kotlin の例だと、以下のように導入する例が記載されています。基本的に手順通りにやればつまる所はありません。

```kotlin
dependencies {
  // ... other androidx dependencies

  // Import the BoM for the Firebase platform
  implementation(platform("com.google.firebase:firebase-bom:33.15.0"))

  // Add the dependency for the Firebase AI Logic library
  // When using the BoM, you don't specify versions in Firebase library dependencies
  implementation("com.google.firebase:firebase-ai")
}
```

```kotlin
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-2.0-flash")

// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
val response = generativeModel.generateContent(prompt)
print(response.text)
```

必要な依存関係を追加します。
Firebase を使うのが初めての方は、**Firebase のプロジェクトを作成する必要があります**。
プロジェクトがあれば、コンソールで Firebase AI Logic の設定を行い、設定ファイルをアプリに追加する必要があります。

注意が必要な点としては、場合によっては**支払い方法の登録が必要**になります。現状 Gemini Developer API は無料枠で使えるそうですが、Vertex AI Gemini API は従量課金なので設定が必要です。
課金の設定では Google Cloud Platform のコンソール上で作業が必要となります。クレジットカードを登録する必要があります。
料金としては、まず手元で試す分には大した金額にはならないと思います。ただ気になる方は料金のページを見ておきます。
また AI のサービスで API key や設定情報などある場合、**セキュリティにはご注意ください**。

### 機能を理解する

上記コードがかければ、とりあえず生成 AI の機能を試せるようになったと思います。
もう少しいろいろなことをやりたいと思うので、上記[公式ドキュメント](https://firebase.google.com/docs/ai-logic/generate-text?hl=ja&_gl=1*efcuy8*_up*MQ..*_ga*MjAyNDg3NjA5MS4xNzQ5OTQ5OTU4*_ga_CW55HF8NVT*czE3NDk5NDk5NTgkbzEkZzAkdDE3NDk5NDk5NTgkajYwJGwwJGgw&api=dev)を見ていきましょう。

ドキュメントの「SDK の機能を使用する」を見ればいろいろな機能が書かれています。
軽くできることをリストアップしていきましょう。

- **構造化出力**（JSON 形式での出力）: 生成されたテキストを JSON 形式で受け取ることができます。
- **Live API**: リアルタイムでの対話が可能です。（Pixel を使っている方は Gemini Live のようなものです）
- **マルチモーダル**: 画像などをプロンプトとして渡すことができます。Bitmap で渡します。
- **画像生成**: 画像を生成することができます。
- **その他メディア**: 動画やオーディオの内容を分析することができます。音声を生成することもできます。
- **PDF の分析**: PDF の内容を解析できます。
- **関数呼び出し**: 生成 AI が他のツールを呼び出すために使います。JSON の形式を使います。

私もすべてを試したわけではありませんが、マルチモーダルなどをやってみたところ簡単に実装することができました。
（プロンプトに画像情報を渡すだけです。）

自分のやりたいことに合わせて見ていくとよいでしょう。

### カスタマイズ

生成 AI のカスタマイズを行います。[こちら](https://firebase.google.com/docs/ai-logic/control-content-gen?hl=ja&_gl=1*etqcj8*_up*MQ..*_ga*MjAyNDg3NjA5MS4xNzQ5OTQ5OTU4*_ga_CW55HF8NVT*czE3NDk5NDk5NTgkbzEkZzAkdDE3NDk5NDk5NTgkajYwJGwwJGgw)です。
できることは以下です。

- **プロンプト設計**: プロンプトエンジニアリングのリンクが紹介されています。サンプルのプロンプトも含まれています。
- **モデル設計**: temperature や top_p などのパラメータを調整することで、生成されるコンテンツの多様性や品質を制御できます。
- **安全性設計**: 倫理的に安全なコンテンツを生成するための設計方法が紹介されています。人種やバイアスの問題を考慮します。
- **システム指示**: ペルソナやタスクの目標、対象者などを設定し、AI の精度を向上させます。「3 行で出力して」などの指定も可能です。
- **構造化出力**: JSON 形式で出力するかどうか

### 本番環境

さて、生成 AI は課金が発生するため、本番環境で使う場合は**注意が必要**です。試しに使う以上のことをする場合は必ず読みましょう。
特に[Firebase AI Logic を使用する本番環境チェックリスト](https://firebase.google.com/docs/ai-logic/production-checklist?hl=ja&_gl=1*rdy5h8*_up*MQ..*_ga*MjAyNDg3NjA5MS4xNzQ5OTQ5OTU4*_ga_CW55HF8NVT*czE3NDk5NDk5NTgkbzEkZzAkdDE3NDk5NDk5NTgkajYwJGwwJGgw)の記事はブックマークして、開発のいろんな段階でチェックすると良いでしょう。

- **Firebase App Check**: リクエストがアプリからのものであることを確認します。
- **アラート設定**: GCP 上で、一定の使用量を超えた場合にアラートを設定します。
- **Firebase Remote Config**: アプリの設定をリモートで変更できるようにします。これにより、AI の機能をオンオフしたり、モデルやプロンプトを変更したりできます。

アプリをリリースするなら、上記は**開発初期段階から考慮して設計**していきましょう。
それ以外にも重要なことが書かれているので、チェックリストだけでなく他の関連項目も必ず目を通しておいてください。

## 公式サンプル

公式サンプルはなかなか充実しているので、ぜひ見ておきましょう。
とりあえずためしてから、それ以上のやりたい場合は、特に見ておくと良いと思います。
プロンプトの書き方とか、アーキテキチャ内でどのように実装していくかなども参考になります。
他にも色々サンプルはありますが、特にいいと思ったサンプルを紹介します。

### [ai\-samples/ai\-catalog at main · android/ai\-samples](https://github.com/android/ai-samples/tree/main/ai-catalog)

![ai-catalog サンプル画像](https://camo.githubusercontent.com/3bc2994738cd379e5ad3daf951948dcdd35c460960397bf46226c232036a6ebd/68747470733a2f2f646576656c6f7065722e616e64726f69642e636f6d2f7374617469632f61692f6173736574732f696d616765732f61695f73616d706c655f636174616c6f675f313434302e706e67)

AI 機能のカタログアプリです。
チャットボットや、画像、動画を扱う AI 機能が含まれます。
動画の内容の要約も含まれていて、動画を扱う際は目を通しておきたいところです。

ViewModel で Firebase AI Logic を使う方法は参考になります。

### [android/androidify: Sample app for Androidify](https://github.com/android/androidify)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1165483/8e39266b-6c69-44b4-97e5-522891721355.png" alt="image.png" width="300" />

Google I/O で発表されたサンプルアプリで、自分にパーソナライズされた Droid くんを生成します。
Nav3 を使ったりとか他にもいろいろ見どころがありますが、Firebase AI Logic の使い方も参考になります。

基本的な使い方や MVVM での実装方法も参考になりますが、
画像検証のフローなどは非常に参考になります。

撮影した自分の画像を元に Droid くんの来ている服が変わったりするのですが、
撮影した画像によってはノイズが多かったり人の写真を取っていなかったりするとそもそもプロンプトとして適さない画像になったりします。

その場合に画像の検証を生成前に行うのですが、それも AI で評価しています。検証プロンプトを元に成功か失敗かを判断しています。

RemoteConfig でプロンプトを切り替えたりするところもあります。
生成 AI が動作中であるときにボタンをグラデーションのアニメーションをつけたり、UI 上の工夫もあり、参考になるでしょう。

## まとめ

Firebase AI Logic は、モバイルアプリに AI 機能を簡単に組み込める強力なツールです。公式ドキュメントやサンプルが充実しているため、基本的な導入から高度なカスタマイズ、運用上の注意点まで幅広く学ぶことができます。

まずは公式ドキュメントやサンプルアプリを参考に、実際に手を動かしてみるのがおすすめです。

本番運用時は課金やセキュリティ、リモート設定などにも注意し、チェックリストを活用しながら安全に開発・運用しましょう。