0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Bedrock ナレッジベース構築メモ:メタデータフィルタ活用術

Posted at

以下に AWS Bedrock における ナレッジベース構築と、メタデータフィルタの設定に関するメモをまとめます。構成や制約を理解しておくと設計がスムーズです。


🔧 前提

  • AWS Bedrock Knowledge Bases は、既存のドキュメント (S3 等) をベースに RAG(Retrieval-Augmented Generation)構成を簡単に構築できるマネージドサービス。
  • 検索エンジンは現在、Amazon OpenSearch または Amazon Kendra に対応。
  • メタデータフィルタは、ドキュメントに紐づく「属性」で検索時の絞り込みに使える。

🧱 ナレッジベース構築の流れ(概要)

  1. ドキュメント配置

    • S3 バケットに .pdf, .txt, .md などのドキュメントを配置。
  2. データソースの設定

    • Bedrock で S3 をデータソースとして指定。
    • 定期的 or 手動で同期。
  3. ベクターストア設定

    • OpenSearch または Kendra をベクターストアとして接続。
    • OpenSearch では、専用の index を作成し、フィールド定義を設計。
  4. ナレッジベース作成

    • データソース + ベクターストアを指定し、ナレッジベース作成。
    • Foundation Model (Claude, Titan, etc.) を選択。

🧷 メタデータフィルタの設計メモ

📌 メタデータとは?

  • 各ドキュメントやそのチャンクに付与できる「属性情報」。
  • 例: department: HR, doc_type: policy, created_at: 2023-01-01 など。

📁 付与方法

  • メタデータはドキュメント同期時に Bedrock が自動で付与することはほぼない(例外:Kendra は一部自動抽出あり)。
  • 明示的に制御したい場合、ドキュメント名やパス、S3 メタデータ、または JSON メタ情報を使って構成

方法例 1:S3 オブジェクトメタデータを使う

aws s3 cp sample.pdf s3://your-bucket/docs/sample.pdf \
  --metadata department=HR,doc_type=policy

方法例 2:メタデータ付き JSON ファイル形式(OpenSearch 使用時)

{
  "text": "この文章は会社の規則について述べています。",
  "metadata": {
    "department": "HR",
    "doc_type": "policy",
    "created_at": "2023-01-01"
  }
}
  • JSON ファイルで S3 にアップロードし、事前に適切なベクターストアと連携。

🕵️‍♂️ フィルタの使い方(検索時)

ナレッジベースを使った検索 API 呼び出し時に、filter パラメータを指定可能。

例:Bedrock の API 経由での検索

{
  "knowledgeBaseId": "kb-xxxx",
  "input": "会社の休暇ポリシーを教えてください",
  "retrievalConfiguration": {
    "vectorSearchConfiguration": {
      "filter": {
        "doc_type": "policy",
        "department": "HR"
      }
    }
  }
}

🎯 注意: メタデータキー・値は、ベクターストアで定義した形式に合致している必要があります。


💡 Tips

ポイント 説明
フィルタ精度 検索対象がチャンク単位なので、チャンクごとに正しいメタデータをつける設計が重要。
Kendra の場合 ドキュメントタイプや作成日など、Kendra が自動抽出してメタデータとして付ける項目もある。
クエリデバッグ Bedrock のコンソールではフィルタを試す UI は限定的なので、API/CLI/SDK で確認が確実。

🧪 検証事項チェックリスト

項目
ドキュメントに必要なメタデータが付与されているか
ベクターストア(OpenSearch/Kendra)でフィールドが認識されているか
検索 API に filter を入れて結果がフィルタされるか
JSON フォーマットの整合性
S3 → ベクターストア同期後、filter 適用できるか
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?