こんにちは!
今回の記事では、
弊社でアプリケーション開発をするときによく使用しているGoogleが提供しているデータベースサービス"Firebase"の、Extensitonsで拡張機能を簡単に追加する機能があるのですが、最近(2023 年 5 月 に開催された Google I/O 2023 では Generative AI に関する Firebase の新機能 が発表されました。)そのサービスにAIを導入したアプリケーションの開発を補助してくれるような拡張機能が追加されました。今回はその拡張機能を使っての開発とその所感をお話ししようと考えています。
2023年5月にあったGoogle IOの内容は他にも興味深い内容があるので一読してもいいかもしれません Firebaseってどんなサービス?
Firebaseは、アプリ開発を容易にするためのGoogleのプラットフォームです。このサービスは、開発者がより迅速かつ効率的にアプリを構築、改善、拡大するための様々なツールとサービスを提供しています。
開発の簡素化
Firebaseは、リアルタイムデータベースや認証機能など、アプリ開発に必要な多くの機能を提供します。これらの機能により、開発者はバックエンドの複雑な設計を心配することなく、アプリのフロントエンドに集中できます。
リアルタイムデータベース
Firebaseのリアルタイムデータベースは、データの同期を瞬時に行い、オフラインでも機能するため、ユーザー体験を向上させます。これにより、アプリは常に最新の情報を表示し、ユーザー間のインタラクションをスムーズに行うことができます。
認証システム
Firebaseの認証システムは、Google、Facebook、Twitterなどの主要なアカウントを使用したログイン機能を簡単に実装できます。これにより、ユーザーは既存のアカウントを利用してアプリにアクセスでき、新規登録の手間を省けます。
分析とパフォーマンス管理
Firebaseは、Google Analyticsとの統合を通じて、アプリの使用状況やユーザー行動の詳細な分析を提供します。また、パフォーマンスの問題を特定し、改善するためのツールも用意されています。
クラウド機能とスケーラビリティ
Firebaseは、クラウドストレージ、ホスティング、クラウド関数など、多彩なクラウドベースのサービスを提供します。これらは、アプリのスケールアップに必要な柔軟性と拡張性を持ち合わせています。
結論、Firebaseって?
Firebaseは、アプリ開発のプロセスを効率化し、開発者がより創造的でユーザーフレンドリーなアプリを作成できるよう支援します。Googleが提供するこの強力なツールセットは、初心者から経験豊富な開発者まで、幅広く利用されています。
ちょっと長くなってしまいましたが、Firebaseを利用することでアプリケーション開発の効率化がはかれるものとなっています。
Firebase Extensionsでできることは?
Firebase Extensionsはアプリ開発を進化させるためのツールで、開発タスクを自動化し効率化を支援するものとなっています。
主な機能は以下のようなものになっています。
コードの自動化と簡素化:コードの書き込みを減らし、画像の自動リサイズやメール送信などの機能を簡単に実装できます。
時間節約:一般的な機能の実装にかかる時間を削減し、創造的な開発に集中できます。
サードパーティサービスとの統合:StripeやAlgoliaなどのサービスと統合し、アプリ機能を強化します。
カスタマイズ可能:特定のニーズに合わせて拡張機能を調整し、最適なパフォーマンスを実現します。
セキュアな環境:Firebaseのセキュリティとプライバシー基準に準拠しています。
容易な管理とデプロイメント:Firebaseコンソールを通じて簡単に管理とデプロイメントが可能です。
つまり、Firebase Extensionsを利用することで、開発プロセスが簡素化され、アプリの機能が強化されるというものになっています。
拡張機能を導入するだけで高機能なアプリの開発ができるなんて素晴らしいサービスですね(個人の見解になりますが)。
Firebase ExtenstionsでGoogle製AI 'Bard'を導入してみた
さて、ここからが本題になるのですが、上で説明したExtentsionsでGoogleのAIを導入してみたので、その手順と導入した感想をお話ししようと思います。
とは言っても、拡張機能自体の導入は本当に簡単です。
対象のFirebaseのプロジェクトから拡張機能画面へ
まずは、AIを導入したいFirebaseのプロジェクトのコンソール画面から拡張機能を選択するページへ飛びます。話はそこから。
Firebaseを触ったことがある人ならわかるとは思いますが左側のメニューからExtensionsへ飛びます。
その後、今導入しているExtensionsの一覧画面が表示されます(もうすでに拡張機能を導入したことがある場合)
もし今まで拡張機能を導入したことがない場合には以下のような画面になるはずです。
どちらの場合でも拡張機能を探すボタンは下の方にあるのでそこから拡張機能の一覧へ行けるはずです。
拡張機能の一覧画面の左がエアのメニューで検索フィルタリングできます。今回は以下の写真のようにAIを選択します。
すると拡張機能のAIが絞り込みされるのでそこから、適切なAIの拡張機能を選択します。
ここでは、【Language Tasks with PaLM API】
を選択します。
※以下に添付している写真の右側
この拡張機能は言語処理モデルであるPa LMを元に(Bardの元になっている言語モデルです)、こちらの指令(プロンプト)を元に処理を返してくれるというものになります。
今回はこの拡張機能を導入しました。
対象のFirestoreのコレクションのデータを紐付けて設定する。
対象のFirrestoreのコレクション、フィールドを選択し 、そのデータを使用した命令文(プロンプト)を以下のように設定します。(プロンプト内には対象ドキュメントのデータを埋め込むことができます)
どうやってデータを埋め込むのか?
あらかじめ使用するフィールドの名前を設定し、その設定したフィールド名を変数名として扱うことで命令文に埋め込むことが可能になります。
今回の部分では以下の赤文字になっているところです。
次に書いてある関数をわかりやすく説明をしてください。{{functionCode}}
使いたいフィールド名を{{}}で囲むことで埋め込みができるようになります。
あとは設定を保存し、エクステンションを有効にするだけ!すごく簡単な操作で実装できました。
実際に返ってきたデータを見てみる。
元々、プロンプトとして渡していた命令分は以下のようになっています。
※プロンプト内に時入っている変数をドキュメントのフィールドの値に変換してあります。
次に書いてある関数をわかりやすく説明をしてください。(a: number, b: number): number => a + b
この命令文から返ってきた実際の答えが次のようになりました。
"この関数は、引数として2つの数値を受け取り、それらの和を返します。 例えば、この関数に1と2を渡すと、3が返されます。 この関数は、加算演算子(+)を使用して2つの数値を加算することで、その和を計算します。 この関数は、数値を加算する必要がある場合に使用できます。"
※ちなみに命令文が長すぎたり欠損部分があるとエラーが返ってきます。
エラーや完了のステータスが確認できるのは対象のドキュメントの’status’というフィールドに格納されます。
この記事では簡単な関数で試してみましたが、他にも色々な関数で試したところ、複雑な関数でも説明はしっかりとしていましたし、実際どのような処理をしている関数なのかを理解するには十分だったかと思います。
この拡張機能を活用することで色々な可能性が感じられる経験となりました。
皆さんもよければ試しにAI拡張機能を利用してみてはいかがでしょうか。