Azure Blob Storageに登録されたファイルのメタ情報をAzure AI Searchのフィールドに登録する
はじめに
近年盛り上がりを見せているGenerative AIのシステムを構築するためにRAG(Retrieval Augmented Generation)アーキテクチャが採用されることが多いです。RAGを構築するためには、データとそのデータを検索するための仕組みが必要です。
データは頻繁に更新されるため、その更新に追従して検索インデックスも更新する必要があります。その運用を楽にできるような仕組みとしてAzure Blob Storageに登録されたファイルを元にインデックスを生成する方法を調査しました。
使用するサービス
- Azure AI Search (旧 Azure Cognitive Search)
- Azure Blob Storage
やりたいこと
Blob Storageに登録されたファイルのメタ情報がAI Searchのフィールドに自動的に反映されるようにしたいと考えております。
例えば、ファイルにカテゴリーや作成者の情報がメタ情報として登録されている場合にAI Searchのフィールドにこれら情報が反映されるようにしたいというケースがあります。カテゴリーなどの情報を検索時のフィルターに使用する場合を想定しております。
メタデータの登録
Azureの公式サイトには以下のような記述があります。
ファイルに関する追加情報を含める場合は、別のストアを使用せずに、メタデータを BLOB に直接関連付けることができます。 組み込みの Blob Storage 検索インデクサーは、このメタデータを読み取って、検索インデックスに配置することもできます。 これにより、ユーザーはファイル コンテンツと共にメタデータを検索できます。
Azure Cognitive Search を使用してファイル コンテンツとメタデータのインデックスを作成する
今回はcategoryというメタデータをAI Searchのフィールドに登録するケースを考えます。
作成したストレージコンテナーのメタデータとしてcategoryというキー名のメタデータを作成します。
そして、各ファイルのメタデータとしてcategoryというキーにして、具体的なカテゴリーを設定します。
BlobストレージをデータソースとしてAI Searchのインデクサーを作成します。
categoryというフィールドが作成されていることが確認できました。
これにより、categoryを例えば検索のフィルターとして使用することができます。
まとめ
Blob Storageにメタデータを設定し、AI SearchのデータソースとしてBlobストレージを選択してインデクサーを構成することでファイルのメタデータがAI Searchのフィールドにも反映できることを確認しました。
AI Searchの利用に関しては、こちらの記事もよければご覧ください。
Azure Blob Storageに登録されたファイルを自動でAzure AI Searchのインデックスに登録する
Discussion