Cloud Functions を使ってGoogle Cloud Storage とVertex AI Search データストアを同期してみた

2024年3月27日掲載

シリーズ第4弾 「Cloud Functionsを使ってGoogle Cloud Storage とVertex AI Search データストアを同期してみた」 をお届けします。

第1弾 「【2024年3月版】Google 生成 AI サービスの最新情報まとめ
第2弾 「ノーコードでVertex AI Search を利用してGoogle サイトでRAG構築してみた
第3弾 「Vertex AI search で構築した検索アプリをGoogle Cloud Storage (GCS)で公開してみた

Vertex AI Search のデータストア(以下、データストア)に学習用のドキュメントをインポートするには、一度Google Cloud Storage (以下、GCS )にドキュメントをインポートした後に、データストア上でGCS からドキュメントをインポートする2ステップが必要になります。この作業をすることにより、Vertex AI Search にて自動的にドキュメントがLLM で使われるようにインデックスが作成されます。
これを、ドキュメントを増やす度に行うとなると、すごく面倒ですよね。
また、現在データストアの仕様上、データストアからドキュメントを1つでも削除したい場合は一度データストア内のドキュメントをすべて削除し、再度必要なドキュメントをインポートしなおす必要があります。
そこで、今回はCloud Functions を利用することで、GCS へドキュメントをインポートするだけで、自動的にデータストアにもドキュメントがインポートされ自動同期される方法を紹介いたします!

また、以下が本記事で紹介する内容の全体像の構成図となります。

目次

1.(前提)関係する、GCPプロダクトについて

前回までのシリーズをお読みいただいた方はすでにご理解いただいていると思いますが、まだ読んでいないという方向けに、今回の構築に関係するGCPプロダクトを紹介します。

Vertex AI Search:
Google Cloud のVertex AI プラットフォームの一部です。企業が構築したデータを効率的に検索でき、ユーザーは自社のデータを高速かつ正確に検索し、必要な情報にアクセスすることができます。
詳細については、以前のブログ「Vertex AI Search (旧称 Gen App Builder の Enterprise Search) の日本語版を試してみた」をご覧ください。

Cloud Functions:
Cloud Functions は、イベント駆動型のサーバーレスコンピューティングプラットフォームです。特定のイベント(トリガー)が発生した際に自動的に実行されるコード(関数)を作成し、GCP 上で実行されるマイクロサービスの作成とデプロイを簡素化することができます。

Cloud Storage:
Cloud Storageは、オブジェクトストレージサービスです。ファイルやデータの保存、アクセス、管理ができます。データはバケットと呼ばれるコンテナに保存され、バケットは一意の名前を持ち、複数のデータオブジェクトを格納できます。

これで準備ができましたので、早速本題に入っていきたいと思います。

2.サービスアカウントの作成と関連APIを有効にする

ファンクションを作成する前に必要な準備を進めていきましょう。

2-1.まず、サービスアカウントを作成していきます。
 Google Cloud 管理コンソールの  [IAM と管理] から [サービスアカウント]を選択します。


2-2.
画面上部の[サービスアカウント作成]を選択し、以下のように必要な情報を入力していきます。

・アカウント名、ID:任意のものを入力してください。
・権限(ロール):以下の権限を入力してください。
 Cloud Functions 管理者 (roles/cloudfunctions.admin)
 サービス アカウント管理者 (roles/iam.serviceAccountAdmin)
 Project IAM 管理者(roles/iam.serviceAccountViewer)
 ログ管理者(roles/logging.viewer)
 Error Reporting 管理者(roles/errorreporting.viewer)
・サービスアカウントユーザーロール:作業アカウントのメールアドレスを入力してください。


2-3.
次へを押すと、サービスアカウントが作成されます。


2-4.
次に関連APIを有効化していきます。

Google Cloud 管理コンソールの  [APIとサービス] から [有効なAPIとサービス]を選択します。


2-5.
[+ENABLE APIS ANDS SERVICES]から以下のAPIを検索し、有効化します。
すでに有効化してあるAPI はスキップしてください。
・Identity and Access Management (IAM) API
・Cloud Build API
・Cloud Functions API
・Cloud Logging API
・Cloud Pub/Sub API
・Eventarc API
・Artifact Registry AP
・Cloud Run Admin API

有効化が完了したら、事前準備は完了となります。


2-6.
Vertex AI Searchのアプリおよびデータストアを作成します。
作成方法は「ノーコードでVertex AI Search を利用してGoogle サイトでRAG構築してみた」をご覧ください。

3.ファンクションを作成する

※データストアとGCS 同期にはドキュメントのインポートとファイル更新(削除含む)の2種類がございます。
今回は、インポートする方法をご紹介します。

3-1.Google Cloud 管理コンソールの  [Cloud Functions]を選択します。

3-2.[ファンクションを作成]を選択し、以下のように設定を行います。
・環境:第2世代
・関数名:任意で入力をしてください。
・リージョン:データストアと同期させるGCS のバケットと同じリージョンを選択してください。
・トリガー:[その他のオプション]を選択し、表示されるポップアップにて選択
 トリガーのタイプ :Googleのリソース
 イベントプロパイダ:Cloud Storage
 イベントタイプ  :google.cloud.storage.object.v1.finalized
 バケット     :データストアと同期させるGCS のバケットを選択
 サービスアカウント:2-1で作成したサービスアカウントを選択

3-3.次にランタイム、ビルド、接続、セキュリティの設定を以下のように設定していきます。
サービスアカウントを入力する箇所は2-1で作成したサービスアカウントを入力してください。

3-4.次へを選択して、コードを入力していきます。

今回はpythonでコードを書いています。
赤枠部分がGCS にファイルをインポートした際に、自動的にデータストアにもファイルをインポートするためのコードとなります。

4.ファンクションの作成完了

4-1.コードを入力し、デプロイが成功すればファンクションの作成完了です。
デプロイが成功した際は関数名の横に緑の✓マークがつきます。

これでGCS とデータストアの同期が成功となります!


4-2.
実際ファイルをGCS にアップロードして確認してみたいと思います。

5.まとめ

本記事では、GCS とVertex AI Search データストアを同期する方法を紹介しました。

GCS に追加で検索させたいドキュメントを追加すれば、Cloud Functions のトリガーによって自動的にVertex AI Search データストアへインポートされるので、2度手間がなくなり作業が楽になります!
Vertex AI Search をご利用の場合、ぜひGCS と同期させてみてください。

ソフトバンクは、Vertex AI Search を活用した文書検索体験ができる 「Vertex AI DIYプラン」を新たにリリースしました。
Vertex AI DIY プランお申込みのお客様には、本記事で実現している方法の詳細手順ならびに、ソースコードも無償で提供しております。

ご興味のある方、ぜひ関連サービスにある「Vertex AI DIYプラン」をご確認ください。

Vertex AI DIYプランについて

Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。

Vertex AI DIYプランでは、以下の3つのことを体験いただけます。

詳細は、「Vertex AI DIYプラン」をご確認ください。

関連サービス

Vertex AI DIYプラン

Vertex AI Search を使って社内文書を検索する生成AIを構築してみませんか?
ソフトバンクのエンジニアが構築をサポートします。
Google の生成AIの導入を考えている方はもちろん、どのようなものか確認したいという方でもご活用いただけます。

Google Cloud

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

MSPサービス

MSP(Managed Service Provider)サービスは、お客さまのパブリッククラウドの導入から運用までをトータルでご提供するマネージドサービスです。

おすすめの記事

条件に該当するページがございません