Closed4

Vertex AI for Firebase(Gemini API)の諸々

ツルオカツルオカ

https://firebase.google.com/docs/vertex-ai

  • firebase_vertexai | Flutter packageはじめFirebase版はML KitとVertex AIをクライアントからダイレクトに利用できるようにしたもの(Preview版)
  • 利用にはGoogle Cloud ConsoleでのFirebase ML API, Vertex AI APIの有効化が必須
  • Geminiを利用する際に嬉しいポイントが、Vertex AIでラッピングされているのでGemini API Keyをクライアントに記載する必要がなくキーの管理が不要な点
    • 会社でGoogle Cloud費用を支払っていたりすると、Gemini API Keyを別で支払う必要なくVertex AIでまとめて計上されるので会計的にもラク
  • API Keyが不要ということはFirebase SDKでGemini APIを利用できるということなので、App Checkの有効化は必須
    • ref. Implement Firebase App Check to protect the Gemini API from unauthorized clients
    • Firebaseの設定ファイルは公開前提の設計のため、有効化していなかった場合はスクリプト経由などでバンバンGemini API使われてしまうことも可能
    • 構造的にはFirebase MLサーバーにまずリクエストが投げられ、プロキシゲートウェイとしてApp Checkが機能し、パスしたらGemini APIにルーティングする構造(Gemini API自体にApp Checkの機能はない)
ツルオカツルオカ

使い方もシンプルで簡単に利用できる。デフォルトリージョンはus-centralになっておりリソース見つからないエラーになったりするので、東京リージョンなどは指定が必要。

// Firebaseパッケージで使ういつもの初期化
await Firebase.initializeApp();

// Vertex AI部分はミニマムこれだけ
final model = FirebaseVertexAI.instance.generativeModel(model: 'gemini-1.5-flash');
final prompt = [Content.text('Write a story about a magic backpack.')];
final response = await model.generateContent(prompt);
print(response.text);

例)Tokyo, Japan (asia-northeast1)で使用したい場合
ref. https://firebase.google.com/docs/vertex-ai/locations?platform=flutter#available-locations

final vertexAI = await FirebaseVertexAI.instanceFor(location: 'asia-northeast1');
final model = vertexAI.generativeModel(model: 'MODEL_NAME');
ツルオカツルオカ

Gemini APIの利用の前にはVertex AI Studioで色々先に試してみるのが基本的な使い方。GUIでシステムインストラクションやパラメータを調整しながら検証を繰り返し、良い塩梅の結果が得られたらそのプロンプト実装に移すのが最もラク。

このスクラップは2024/09/09にクローズされました