目次
この記事について
本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。
やりたいこと
Agent Builder を用いたデータストア参照型対話エージェントの作成において、
データストアのファイル数が増加することで回答率が低下する問題への対処を進める。
前回の調査日記
あわせて読みたい


AI Agent開発日記 2025/04/13
この記事について 本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。 やりたいこと Agent Builder を用いたデータス...
firebaseでの拡張機能を使ったelastic検索を試してみる。
- やりたいこと
- 拡張機能「Search with Elastic App Search」を使ったelastic検索を検証してみたいのだが、拡張機能で使用されているNode.js 14 のサポートが終了しているためエラーが発生した。
- Firebase拡張機能はGitHub上にソースコードが公開されていて、自分の環境でカスタマイズしてインストールする「ローカルカスタムインストール」が可能
- この方法を使って、拡張機能のソースコードに定義されているNode.jsのランタイムバージョン(
nodejs14
)を、現在サポートされているnodejs20
に書き換えて、自分の Firebase プロジェクトにインストールし直す事で、問題が解決されるかもしれないので検証する
- 現状
- 下記の手順で Firebase 拡張機能のNode.js のバージョンを
nodejs20
に変更でき、
現在は、その拡張機能を Firebase にインストールしようとしている。
- 下記の手順で Firebase 拡張機能のNode.js のバージョンを
AIが作成した実行手順
現在検証中のため、この方法が必ずしも正しい情報であるとは限りません。
**✅ 手順の検証:**
* **① 拡張機能のソースコードをダウンロード:**
* **方法A:ZIPでダウンロードする(簡単):** GitHub リポジトリからの ZIP ダウンロード方法は、ソースコードを手軽に入手する有効な手段です。手順も正確で分かりやすいです。
* **GitHub リポジトリ:** `https://github.com/firebase/extensions` も正しいリポジトリへのリンクです。`firestore-elastic-app-search` ディレクトリを指定している点も適切です。
* **② `extension.yaml` を開いて編集:**
* **`extension.yaml` の場所:** `firestore-elastic-app-search` フォルダの中に `extension.yaml` ファイルがあるという説明も正しいです。
* **`runtime: nodejs14` の検索と置換:** `extension.yaml` 内の `resources` セクションにある `shipToElastic` (Cloud Functions のリソース名) の `properties` 下に `runtime: nodejs14` が記述されている可能性が高いです。`nodejs20` への書き換えも正しい手順です。
* **`runtime:` の複数箇所変更:** **非常に重要な補足です!** `extension.yaml` 内に複数の Cloud Functions リソース (`resources` の `type: firebaseextensions.v1beta.function` のブロック) が定義されている場合、それぞれに `runtime:` が存在する可能性があります。**すべて `nodejs20` に変更する必要がある** という注意喚起は適切です。
* **③ Firebase プロジェクトに拡張機能をインストール:**
* **`cd path/to/firestore-elastic-app-search`:** 修正した拡張機能フォルダへの移動も正しい手順です。
* **`firebase ext:install ./`:** **`firebase ext:install ./` は、ローカルカスタムインストールを実行する正しいコマンド** です。`./` は現在のディレクトリ (修正した拡張機能フォルダ) を指定していることを意味し、YAML ファイルを Firebase CLI に認識させるために必要です。
* **設定項目の入力:** インストール時に Elastic App Search の API キーや接続情報などの設定項目を求められるという説明も正確です。Firebase Extensions の一般的なインストールフローです。
* **④ 確認する:**
* **Firebase Console → 「拡張機能」:** インストールされたか確認する場所として適切です。
* **Cloud Functions → ext-firestore-elastic-app-search-* の関数が Node.js 20 で動いているか確認:** Cloud Functions コンソールで、デプロイされた関数のランタイム環境を確認することは、変更が正しく反映されたかを検証する上で非常に重要です。関数名 `ext-firestore-elastic-app-search-*` も、この拡張機能で作成される Cloud Functions の命名規則に合致しています。
**💡補足:再インストール時のクリーンアップ**
* **古いバージョンのアンインストール (Firebase Console → 拡張機能):** 再インストール前に古いバージョンをアンインストールすることは、競合や設定の残存による問題を避けるために推奨されるプラクティスです。
* **Cloud Functions の削除 (Cloud Console → Cloud Functions):** Cloud Functions が残っている場合も、削除しておくことでよりクリーンな状態から再インストールできます。関数名 `ext-firestore-elastic-app-search-*` を指定している点も適切です。
* **サービスアカウントの削除 (IAM → サービスアカウント):** サービスアカウントの削除は、必須ではありませんが、不要なリソースを整理するという意味で、オプションとして提示するのは良いでしょう。`ext-xxxx 用のアカウント` という表現も、Firebase Extensions が自動生成するサービスアカウントの命名規則に基づいています。