こんにちは。virapture株式会社でCEOしながらラグナロク株式会社でもCKOとして働いている@mogmetです。
最近ラグナロクがエフ・コード社傘下になったことにより、動き方も色々変わったり、やることも増えてきて多忙感を感じております。
それにより絶賛エンジニアやデザイナーを募集中なのでご興味ある方は是非気軽にお話しましょう😇
話は戻り、本日はGoogle I/O 2024で発表されたFirebaseの新機能について紹介致します!
※ベースの記事としては What's new in Firebase at I/O 2024を参照としております。
今回のアップデートとしてはAI、リリース周りのアップデートが主に発表されました。
Firebaseロゴが刷新
Firebaseのアイコンが丸みを帯びた優しい感じのアイコンに刷新されました。
進化を反映したロゴになりました。
AI関連のアップデート
Firebase Data Connect を使用して PostgreSQLをFirebaseに導入する
Firebase Data Connectという、Firebase を使用して、 Cloud SQLでホストされている Postgres データベースにアプリを直接接続できるようになりました。
データモデル及び、許可するクエリ、許可する変更をGraphQLに基づく簡潔な言語で定義すると、Data ConnectがDBを移行、APIサーバのアップグレード、新しいSDK生成を自動で実施してくれます。
また、データベース内の値と構成したモデルに基づいてベクトル埋め込みを自動生成し、それに対してKNN(k近傍法)クエリを実行することもできるため、別のベクトルを必要とせずにアプリに生成AI機能を組み込むことができます。
もぐめっとの一言: firestoreだとベンダーロックになっていましたが、他の選択肢として既存のDBもつなぎ込めることができるようになるのはベンダーロックを回避することもできたり、逆に既存のDBをつなぎこみやすくなるのでどちらにとっても嬉しい機能ですね。
Firestoreのベクトル値対応
ベクトル値をFirestoreドキュメントに保存し、クエリを実行して特定のベクトル値のKNNを取得することもできるようになりました。
import {
Firestore,
FieldValue,
VectorQuery,
VectorQuerySnapshot,
} from "@google-cloud/firestore";
// Requires single-field vector index
const vectorQuery: VectorQuery = coll.findNearest('embedding_field', FieldValue.vector([3.0, 1.0, 2.0]), {
limit: 5,
distanceMeasure: 'EUCLIDEAN'
});
const vectorQuerySnapshot: VectorQuerySnapshot = await vectorQuery.get();
生成AIのベストプラクティスとパターンをFirebase Genkitに統合
Firebase Genkitは、プラグイン、テンプレート、シンプルな抽象化を提供することでAIコンポーネントの統合の複雑さを軽減し、独自のカスタムロジックとデータを備えたAIモデルを使用して、ビジネスに最適化されたAI機能を構築できます。
また、開発者Toolを使うことでローカルでの実行も可能です。
CloudFunctionsと連携する場合は Firebase Cloud Functions の Genkitを参照ください。
CLIを通してフローをデプロイできます。
Vertex AI for Firebase SDKを使用してGemini APIにアクセス
Vertex AI for Firebase SDKを使うとアプリクライアントから直接AIモデルを呼び出す事ができます。
import { initializeApp } from "firebase/app";
import { getVertexAI, getGenerativeModel } from "firebase/vertexai-preview";
// TODO(developer) Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
// ...
};
// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);
// Initialize the Vertex AI service
const vertexAI = getVertexAI(firebaseApp);
// Initialize the generative model with a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
const model = getGenerativeModel(vertexAI, { model: "gemini-1.5-pro-preview-0409" });
// Wrap in an async function so you can use await
async function run() {
// Provide a prompt that contains text
const prompt = "Write a story about a magic backpack."
// To generate text output, call generateContent with the text input
const result = await model.generateContent(prompt);
const response = result.response;
const text = response.text();
console.log(text);
}
run();
SDKはApp Checkと統合されているので安全に呼び出すことができます。
もぐめっとの一言: AIプラットフォームであるVertexAIが使えるようになることで、画像とテキストを組み合わせたベクトル検索や要約など、AIが表現できる幅を広げることができるため、より便利なアプリが気軽に作れそうです。
Firebase App Hostingによるデプロイ
Firebase App Hosting は、webアプリのデプロイに関して、ソースコード内で検出された内容に基づいて、フルスタックWebアプリの構築と実行に必要なインフラストラクチャを自動的にセットアップします。
もぐめっとの一言: CD環境を自分で作らなくて済むので、その分の初期構築コストを下げることができてより便利になります。
アプリのリリース監視
Remote Config機能のロールアウトでアプリの変更を安全にロールアウトする
Firebase Remote Configの新機能ロールアウト ワークフローを使用すると、対象を絞ったロールアウトまたは増分ロールアウトを簡単に実行できるようになり、続行するかロールバックするかについて十分な情報に基づいた決定を下すことができます。
例えば、以下の画像では、特定のケースではエンゲージメント時間が増加しているのが分かるので、そのデータをもとにさらに展開するかどうかの判断をすることができます。
もぐめっとの一言: GoogleやAppleに段階的リリース機能がありますが、それと似たようなことがRemote Configでもできるようになったのでよりスイッチリリースがしやすくなりました。
リリースを1か所で監視する
Crashlyticsを利用した新しいリリース監視ダッシュボードを使用すると最新のアプリのリリースに関する最も重要なデータをすべて1か所でリアルタイムに確認できます。
例えば、下記の画像では、新しいダッシュボードを利用することで、バージョンの導入やアクティブユーザーから、クラッシュのないユーザーやセッションをひとまとめに確認することができます。
Crashlyticsでのデータ分析とAI支援のためにFirebaseでGeminiを使用する
先月、FirebaseでGeminiの支援が使えるようになりましたが、その支援の一つとして、新しくCrashlyticsのAI支援を含めるように拡張しました。
Crashlyticsで特定の問題をクリックすると、新しい [Generate AI insights] ボタンが表示されます。
これを使うことによってクラッシュやエラーを分析し、バグをできるだけ早く修正するのに役立つ情報を得ることができます。
もぐめっとの一言: いつも、エラーが発生したときはファイルや行、エラー内容から何が起こってるかを把握していましたが、それがある程度自動化されるのは開発者にとっても時間短縮につながる素晴らしい機能ですね。
まとめ
まとめると下記になります。
- Firebase Data Connectを使うとPostgreSQLをFirebaseに導入できる
- Firestoreでもベクトル値の保存と検索ができる
- GenKitを使って生成AIをより身近にできる
- Vertex AI for Firebase SDKを使ってクライアントから生成AIにアクセスしやすくなる
- Firebase App Hostingでデプロイがよりお手軽になる
- RemoteConfigとCrashlyticsとGeminiを組み合わせてより安全に高品質なリリースが可能になる
今回は生成AIにフォーカスした発表が多い年でした。
より本質的な開発を取り組めるようになるので、引き続きアップデートには期待しております。
最後に、viraptureでは、サービスのコンセプト作りの帆走や、チームビルディング、技術顧問、Firebaseの設計やアドバイスといったお話も受け付けてますのでご感心ある方は気軽に弊社までお問い合わせください。
ラグナロクではエンジニアやデザイナーのメンバーを募集しています!!楽しくぶち上げたい人はぜひお話ししましょう!!