• Google Cloudに関する記事
6分で読める

Firebase の驚くべき新機能とは!? Generative AI 機能を組み込んだアプリケーションを爆速開発!

こんにちは、SRE ディビジョンの小堀内です。

最近 ChatGPT や Google Bard など Generative AI(生成 AI)の話題が毎日のように耳に入りますね。

2023 年 5 月 に開催された Google I/O 2023 では Generative AI に関する Firebase の新機能 も発表されました。

今回は、この Firebase の新機能を活用して Generative AI を組み込んだアプリケーションを高速に開発する方法を紹介します。

そもそも Firebase ってどんなサービス?

Firebase とは、モバイル / Web アプリケーション開発に特化したバックエンドサービスです。

そのため Firebase を活用することで、バックエンド開発 及び その管理をする必要がなくなり、モバイル / Web アプリケーションのフロントエンド開発に専念することができます。

その結果として、開発工数の大幅な削減を見込むことができます。

もっと詳しく知りたい方は

Firebase についてさらに詳しく知りたい方はこちらの動画を見ることをお勧めします。
5分でわかる Google Cloud!Firebase 編

Firebase Extensions とは?

Firebase には、あらかじめパッケージ化されたソリューションを使用して、アプリケーションに機能を素早くデプロイできる Firebase Extensions という機能が存在します。

Firebase Extensions の例としては、リサイズ可能な画像の生成、メール送信、データベースの自動クリーンアップなどがあります。

例えば、リサイズ可能な画像の生成のソリューションを使用する場合、上記スクリーンショットにも表示されている `Resize Images` 欄の `Install` ボタンを押下するだけで使用可能となります。

このように便利なソリューションを簡単かつ高速に使用することができます。

なお、現在使用可能なソリューションの一覧は Firebase Extensions Hub で確認することができます。

Firebase Extensions に追加された新機能について

2023 年 5 月 に開催された Google I/O 2023 では、Firebase Extensions に 20 以上の機能(ソリューション)が追加されました。

その中に Generative AI に関する機能もいくつか含まれています。

  • Chatbot with PaLM API
  • Summarize Text with PaLM API
  • Language Tasks with PaLM API
  • Semantic Search with Vertex AI
  • Call PaLM API Securely

PaLM API とは?

PaLM APIGoogle Bard に搭載されている Google の次世代モデル PaLM 2 がベースとなっている API です。

PaLM は、自然言語処理(Natural Language Processing, NLP)の技術を活用して、テキストの生成、要約、分類などの処理が可能です。

具体的には、PaLM APIを通じて、次のような高度な自然言語処理機能にアクセスすることができます。

機能 説明
コンテンツ生成 新しいテキストや記事を生成する
要約 長いテキストを短く要点を抑えた形で要約する
分類 テキストをカテゴリーやタグに分類する

以降では、Firebase Extensions を通して PaLM API を使用し、Google の大規模言語モデルの高度な機能にアクセスしていきます。

実際に触ってみる

それでは、実際に Firebase プロジェクトに PaLM API をインストールしてさまざまなことを試していきます。(ここでは、既に Firebase プロジェクトが作成済み という前提で説明を行います。)

PaLM API をインストール

まずは Firebase Extensions の検索欄から `PaLM API` を検索して Firebase にインストールします。

検索を行うと

  • Chatbot with PaLM API
  • Summarize Text with PaLM API
  • Language Tasks with PaLM API
  • Semantic Search with Vertex AI
  • Call PaLM API Securely

の 5 種類の機能がヒットしますが、

今回は Summarize Text with PaLM API を使用します。

Install ボタンを押下することで対象の Firebase プロジェクトへ 機能の追加が行われます。

Firestore の設定

上記でインストールした Summarize Text with PaLM API は、
特定のフィールド名を持つドキュメントが Firestore の特定のコレクションへ、追加された時に、PaLM API を使用した Cloud Functions 関数が実行される仕組み
となっています。

そのため、Summarize Text with PaLM API をインストールする際に、Cloud Functions のトリガーとなる Firestore コレクション・ドキュメントの設定を行う必要があります。

今回は、次の条件でトリガーの設定を行います。

Collection Name Text field Response Field(結果が格納されるフィールド)
text_documents text summary

つまり、この Firebase プロジェクトの Firestore に対して、

text フィールドを持つドキュメントが text_documents コレクションに追加された時に、Cloud Functions 経由で PaLM API にてテキストを要約し、その結果を summary フィールドに格納する

ということになります。

指定したドキュメントが要約されるか確認してみる

上記で設定した、Cloud Functions トリガー発火のために text フィールドを保持するドキュメントを text_documents コレクションに追加します。

すると、text フィールドに指定したテキストが数秒後に summary フィールドに要約された形で格納されました。

ちょうどいい具合に短くしてくれています。

※本記事執筆時点(23/6/20)では日本語での要約には対応していないようです。

before after
I lived in Iwate for a long time. I recommend it as a place with a lot of nature and very easy to live in. I encourage everyone to come and visit. Iwate is a great place to live with lots of nature and easy to live.

要約アプリを作ってみる

ここまで、Firebase Extensions を通して PaLM API(Summarize Text with PaLM API) を使用する方法を説明してきました。

最後に、まとめとして Summarize Text with PaLM API を用いた簡単な要約アプリを作っていきます。

構成

要約アプリの構成図を次に示します。

  • Flutter(フロントエンド)
    • クライアントアプリとして UI を提供
    • UI に入力された内容を Firebase Firestore の text_documents コレクションにドキュメントを追加するリクエストを送る
    • Firebase Firestore から 要約結果を受け取る
  • Firebase(バックエンド)
    • Extensions により Summarize Text with PaLM API をインストール
      • API インストールにより、自動的に Firestore をトリガーとした Cloud Functions 関数がデプロイされる
    • フロントエンドからのドキュメント追加リクエストにより Firestore へのドキュメント追加を行う
      • ドキュメント追加により、PaLM API 経由で要約を行う Cloud Functions 関数が実行される
    • クライアントに要約結果を送る

※本記事では Firebase Extensions を通して PaLM API を使用することを説明する記事のため、Flutter の実装詳細については省略させていただきます。
※実装詳細についてはサンプルコードとして公開します。

完成

とても簡易的ではありますが、入力したテキストを要約するアプリが出来上がりました。

まとめ

Firebase Extensions を初めて触ったのですが、こんなに簡単にバックエンドの実装をしてくれることに驚きました。

今回の PaLM API をはじめとして、最近では様々な技術が抽象化されてきており、実装詳細まで知らなくてもサービスが簡単に作れてしまいます。

ですが、抽象化された箇所についても詳細まで理解することで、別の技術に応用できたりするとも考えているので、これからもどの分野に対しても常に貪欲に学び続ける姿勢を大切にしていきたいと思います。

※ Firebase は Google LLC の商標です。

この記事を共有する

合わせて読みたい