Skip to main content

概要

AWS Bedrockナレッジベースツールを使用すると、既存のAWS Bedrockナレッジベースへの問い合わせ(生ドキュメントの取得、またはRAGによる回答生成)と、S3データソースへのPDFドキュメントの同期ができます。

主な機能

  • AWS_BEDROCK_KNOWLEDGE_BASE
    • 自然言語の query でAWS Bedrockナレッジベースに問い合わせます。
    • 2つのモード(config の mode で設定): retrieve は生の検索結果(本文、ソースの場所、スコア、メタデータ)を返し、retrieveAndGenerate(デフォルト)は出典付きのLLM生成回答を返します。
    • numberOfResults で取得するドキュメント数を制御できます(1〜100、デフォルト5)。
    • retrieve モードでは、ガードレールが設定されている場合に guardrailAction(INTERVENED または NONE)も出力されます。
  • AWS_BEDROCK_KNOWLEDGE_BASE_PDF_SYNC
    • 既存のBedrockナレッジベースに紐づくS3データソースへPDFをアップロードし、インジェストジョブを開始します。
    • pdf 入力にはbase64文字列、データURL(data:application/pdf;base64,...)、または公開HTTPS URLを指定できます。
    • コンテンツによる重複排除: オブジェクトキーはPDFのSHA-256ハッシュから生成され、同じ内容のオブジェクトが既にS3に存在する場合はアップロードとインジェストをスキップします(skipped: true)。
    • インジェストジョブの完了を待機できます(waitForIngestion、デフォルト true)。タイムアウト(ingestionTimeoutSeconds、30〜1800秒、デフォルト300)とポーリング間隔(ingestionPollIntervalSeconds、1〜60秒、デフォルト5)を設定できます。
    • 出力にはS3の bucketobjectKeycontentHashingestionJobId / ingestionStatus が含まれます。

認証

どちらのツールもAWSアクセスキーで認証します。config でステップごとに設定します。
  • accessKeyId: AWS_ACCESS_KEY_ID の値、またはそれを含むFlowシークレット名
  • secretAccessKey: AWS_SECRET_ACCESS_KEY の値、またはそれを含むFlowシークレット名
ビルダーごとに自分のAWS認証情報シークレットを登録してください。認証情報に加えて、config には以下が必要です。
  • region: BedrockナレッジベースのAWSリージョン
  • knowledgeBaseId: BedrockナレッジベースID
  • dataSourceId(PDF同期のみ): 対象となるナレッジベースのS3データソースID
  • s3KeyPrefix(PDF同期のみ、任意): データソースのプレフィックスの直後に追加するフォルダ。アップロード先のオブジェクトパスは {S3バケット名}{データソースプレフィックス}{s3KeyPrefix}/... になるため、先頭の / は付けず、バケット名自体は含めないでください。
注意: AWS認証情報は機密情報として扱い、公開リポジトリにコミットしないでください。

使用例

例: ナレッジベースからRAGで回答生成

例: PDFを同期して検索する

注意事項

  • PDFサイズ上限: 100 MBを超えるPDFは拒否されます。
  • PDF検証: ファイルは %PDF ヘッダーで始まっている必要があり、それ以外のファイル形式は拒否されます。
  • HTTPSのみ: pdf 入力で安全でない http:// URLは拒否されます。HTTPSを使用してください。
  • 重複排除: アップロードされるオブジェクト名は {sha256}.pdf です。同じコンテンツハッシュのオブジェクトが既に存在する場合、アップロードとインジェストはスキップされ、skipped: true が返ります。
  • ファイル名: filename はログ用途にのみ使用されます。特殊文字は置換され、100文字に切り詰められます。デフォルトは document.pdf です。
  • インジェスト待機: waitForIngestiontrue の場合、インジェストジョブが FAILEDSTOPPINGSTOPPED で終了したとき、または ingestionTimeoutSeconds 以内に完了しなかったときはステップがエラーになります。
  • 検索時の numberOfResults の上限は100です。