Vertex AI Search を活用して Cloud Storage に保存した非構造化データを検索する場合、デフォルトでは検索結果のリンク(のリダイレクト先)が 署名付き URL となります。このURLは一時的なアクセス権限を付与する際に便利ですが、有効期限内であればURLを知っている人は誰でもアクセスできるといったデメリットも存在します。
この記事では、Cloud Storage の非構造化データの検索結果リンクを任意のURLに変更する方法を紹介します。この方法を利用することで、リンク先のアクセス制御の強化やより使いやすいリンク先の設定などが可能となります。
非構造化データのデータストア登録
Vertex AI Search の検索対象として Cloud Storage の非構造化データをデータストアに登録する際、メタデータを利用することでリンク先を自由に設定することができるようになります。メタデータは JSONL 形式で記述し、id
、Cloud Storage URI (content
)、データ (jsonData
または structData
) を指定します。詳細については公式ドキュメントを参照ください。
以下は、メタデータに任意のURLを設定する structData
形式の JSONL ファイルの例です。文部科学省のドキュメント12を例に、url
フィールドに公開URLを設定しています。
{"id": "1", "structData": {"title": "小学校プログラミング教育の手引", "contact": "初等中等教育局学校デジタル化プロジェクトチーム", "issuer": "文部科学省", "url": "https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf"}, "content": {"mimeType": "application/pdf", "uri": "gs://uri_path/to/doc1.pdf"}} {"id": "2", "structData": {"title": "高等学校学習指導要領(平成30年告示)解説 情報編", "contact": "初等中等教育局学校デジタル化プロジェクトチーム", "issuer": "文部科学省", "url": "https://www.mext.go.jp/content/000166115.pdf"}, "content": {"mimeType": "application/pdf", "uri": "gs://uri_path/to/doc2.pdf"}}
データストアの作成は Agent Builder の「データストアの作成」画面から行います。
データソースとして Cloud Storage を選択した後、インポートするデータの種別を「リンクされた非構造化ドキュメント(JSONL とメタデータ)」に設定し、JSONL ファイルをインポートファイルとして指定します。
インポートが完了すると、メタデータで登録した値がスキーマに反映されます。
Vertex AI Agent Builder でのリンク先の設定
ウィジェット用には、 Vertex AI Agent Builder のアプリコンソールから、作成したデータストアを紐づけたアプリのリンク先の設定を以下の手順で行えます。
- UI タブの構成設定から「データ表示オプション」内の「結果のフィールドの構成」を展開
- URL セレクトボックス(スキーマで取得可能なフィールドが選択肢となる)から、URL 文字列を設定したフィールド名を選択
これにより、検索結果のリンク先が署名付き URL から、メタデータで設定した URL に切り替わります。
API を使用する場合も、検索結果からメタデータを取得できます。例えば、Python API の場合 Document オブジェクトの derived_struct_data
から取得可能です。また、LangChain の Vertex AI Search retriever を使用して URL 等のメタデータを取得し活用する例としては、以前に書いた記事であるLangGraph で Vertex AI Search retriever を使用した簡単な ReAct agent の作成もご参考ください。
メリットと活用例
この方法のメリットの一つとしてアクセス制御の柔軟性向上が挙げられます。認証が必要な Web サイトやドキュメント管理システムへのリンクを設定することで、署名付き URL を直接公開する必要がなくなります。
また、Google Drive や Box などの外部ストレージサービス、あるいは公開 Web サイトへの直接リンクも設定可能なため、Vertex AI Search を様々なドキュメントソースの統合検索基盤としても活用できます。
現在、Google Drive をデータストアのソースとして選択することはできますが、特定のフォルダを指定したデータストアの構築はできません3。しかし、Cloud Storage にドキュメントを保存し、メタデータに Google Drive のリンクを設定することで、間接的に検索対象を制御することができます。その上で、Excel ファイル(XLSX)に Google スプレッドシート、Word ファイル(DOCX)に Google ドキュメントのリンクを紐づけるなどすると、ユーザーはブラウザ上で直接ファイルの内容を確認できるようになり、利便性も向上します。
- 「小学校プログラミング教育の手引(第三版) 」(文部科学省)(https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf) ↩
- 「情報編 高等学校学習指導要領(平成30年告示)解説」(文部科学省)(https://www.mext.go.jp/content/000166115.pdf) ↩
- Google Issue Tracker には [Vertex AI Search] Allow users to configure data-store to access specific folders in Google Drive.という、カスタマーからの要望に基づく issue が存在しています。 ↩