
生成 AI で書類審査を行う AWS ソリューション「RAPID」をデプロイして使ってみた
はじめに
大量のドキュメントを、決められたチェックリストと突き合わせて一件ずつ確認していく審査業務には、相応の工数がかかります。仕様書が要件を満たしているか、申請書の必須項目に漏れがないか、見積書の金額が妥当か。項目が数百、対象が数千件ともなると、人手だけで処理時間と品質を一定に保つのは難しくなります。
このような審査を生成 AI で補助する AWS サンプルとして、RAPID (Review & Assessment Powered by Intelligent Documentation) が公開されています。Amazon Bedrock を使って、チェックリストの項目ごとにドキュメントを合否判定し、最終判断は人間が下す Human-in-the-Loop 型のソリューションです。
なお、RAPID は意思決定の支援ツールであり、専門的な判断や法的助言を行うものではありません。最終的な判断は資格を持った人間の専門家が行う前提で使います。
RAPID とは
RAPID は「チェックリスト × 審査対象ドキュメント」を AI に判定させる仕組みです。チェックリストの各項目について、アップロードしたドキュメントが条件を満たしているかどうかを Amazon Bedrock 上の Claude などが判定し、合否 (pass/fail) と信頼度、判定理由、根拠となった引用箇所を返します。

公式が挙げている代表的なユースケースは次の 3 つです。
- 製品仕様書が要件や業界標準に適合しているかの確認
- 技術マニュアルが社内ガイドラインや業界標準に準拠しているかの検証
- 調達文書や提案書が必要要件を満たしているかのチェック
リポジトリの examples/ja には、より具体的な業務サンプルが 8 種類用意されています。ハウスメーカー商談での議事録と間取り図の整合チェック、車庫証明申請、社内稟議書、製造部門の作業手順書、見積書、新薬承認申請のレビュー、AWS セキュリティ監査が含まれ、それぞれチェックリストと審査対象書類の PDF がセットになっています。自分の業務に近いサンプルを選んで、実際の挙動を確認できます。
運用の基本サイクルは次のとおりです。
構成要素は、frontend が React の SPA、backend が Fastify の REST API、cdk が AWS CDK のインフラ定義、review-item-processor が Bedrock を呼び出して審査を実行する Python の Lambda です。フロントで操作した内容が API を経由してジョブ化され、Step Functions と Lambda が Bedrock を呼び出して審査を実行する流れになっています。
デプロイ方法
デプロイ方法は 2 通り用意されています。AWS CloudShell からワンライナーで実行する方法と、ローカルにクローンして CDK でデプロイする方法です。この記事では、パラメータをカスタマイズしやすいローカル CDK を紹介します。
前提条件
ローカルからデプロイする場合、手元に以下が必要です。
- AWS アカウントと、デプロイ先リージョンへの認証情報
- Node.js と AWS CDK
- Docker (Prisma のマイグレーション用コンテナをビルドするため、デプロイ実行中に必要になります)
加えて、審査エンジンが Amazon Bedrock を使うので、Bedrock のモデルアクセスを有効化しておく必要があります。RAPID はファイル読み込みなどのツール利用を伴うエージェント構成のため、Tool use に対応したモデルを選ぶ点に注意してください。Claude Sonnet 4 系を選んでおけば問題ありません。
リージョンについては、デプロイ先リージョンと Bedrock を使うリージョン (bedrockRegion) を分けて指定できます。今回の検証環境では bedrockRegion に ap-northeast-1 を指定しました。モデル ID には us. eu. apac. jp. global. といったクロスリージョン推論のプレフィックスがあり、bedrockRegion に対応したものを選ぶ必要があります。
パラメータの編集
まず cdk/lib/parameter.ts を編集します。デフォルトは空に近いオブジェクトで、変更したい項目だけコメントを外して設定する形式です。今回設定したのは次の 2 点です。
// cdk/lib/parameter.ts
export const parameters = {
bedrockRegion: "ap-northeast-1", // Bedrock を利用するリージョン (デフォルトは us-west-2)
cognitoSelfSignUpEnabled: false, // Cognito のセルフサインアップを無効化
};
cognitoSelfSignUpEnabled は、URL を知っていれば誰でもアカウント登録できる状態を制御する設定です。デフォルトは true ですが、検証環境でも false に設定しました。本番利用では公式も無効化を推奨しています。
主なパラメータを整理すると次のとおりです。
| パラメータ | 役割 | デフォルト |
|---|---|---|
allowedIpV4AddressRanges |
フロントの WAF で許可する IPv4 範囲 | 全許可 |
cognitoSelfSignUpEnabled |
Cognito のセルフサインアップ可否 | true |
autoMigrate |
デプロイ時に DB マイグレーションを自動実行するか | true |
enableCitations |
PDF 向け Citations API の有効化 | true |
documentProcessingModelId |
ドキュメント審査のデフォルトモデル | Claude Sonnet 4 系 |
imageReviewModelId |
画像審査のデフォルトモデル | Claude Sonnet 4 系 |
availableModels |
項目ごとに選べるモデル一覧 (空配列で選択 UI 非表示) | Opus 4.6 / Sonnet 4.6 / Haiku 4.5 / Sonnet 4 |
feedbackAggregatorScheduleExpression |
フィードバック集約の実行スケジュール | cron(0 2 * * ? *) |
availableModels は、後述するチェックリスト項目ごとのモデル切り替えで選べる候補を定義します。
デプロイの実行
CDK を初めて使うリージョンでは、最初に一度だけ Bootstrap が必要です。
cd cdk
npx cdk bootstrap
その後、リポジトリのルートでデプロイコマンドを実行します。バックエンドのビルドから CDK のデプロイまでを一括で処理します。
npm run deploy
デプロイが完了すると、RapidStack.FrontendURL としてフロントエンドの URL が出力されます。
✅ RapidStack
Output:
...
RapidStack.FrontendURL = https://xxxxx.cloudfront.net
初期ユーザーの作成と管理者設定
セルフサインアップを無効にしているため、ユーザーは Cognito 側で手動作成します。作成したユーザーでログインすると、一般ユーザーとして利用を開始できます。
RAPID は管理者と一般ユーザーで権限が分かれていて、管理者は全ユーザーのチェックリストや審査ジョブを操作でき、一般ユーザーは自分が作成したリソースのみアクセスできます。管理者にするには、Cognito User Pool のカスタム属性 rapid_role を admin に設定します。ログイン後の ID トークンに custom:rapid_role=admin が含まれていれば、バックエンドが管理者として扱う仕組みです。

CloudShell からのデプロイ
ローカル環境を用意せず、ブラウザだけでデプロイを完結させる方法もあります。CloudShell でワンライナーを実行します。
wget -O - https://raw.githubusercontent.com/aws-samples/review-and-assessment-powered-by-intelligent-documentation/main/bin.sh | bash
このスクリプトが、リポジトリのクローンからデプロイまでを自動で実行します。--bedrock-region --document-model --cognito-self-signup --ipv4-ranges といったオプションを渡せるため、リージョンやモデル、IP 制限を指定する場合はオプション付きで実行できます。
主な使い方
RAPID の画面は機能ごとに、チェックリスト、審査 (レビュー)、プロンプト管理、ツール設定、ユーザー設定に分かれています。
チェックリストを作成する
最初に、審査の軸となるチェックリストを用意します。作り方は 2 通りで、チェックリストが書かれた PDF などをアップロードして AI に項目を自動抽出させる方法と、画面上で手動で項目を編集する方法があります。examples/ja のサンプルにはチェックリスト用の PDF が含まれているため、これを取り込むと自動抽出の流れを確認できます。

チェックリストは項目ごとに説明文 (description) を持ちます。この説明文はそのまま審査時のプロンプトに渡るため、何をもって合格とするかを具体的に書くほど、判定が安定しやすくなります。

審査ジョブを実行する
チェックリストができたら、審査対象のドキュメントをアップロードして審査ジョブを実行します。対象は PDF と画像に対応しています。ただし Amazon Bedrock の Converse API には 4.5MB のファイルサイズ制限があるため、これを超えるサイズのファイルは審査できません。

審査結果を確認する
ジョブが完了すると、チェックリストの項目ごとに合否が一覧で表示されます。各項目には、pass/fail に加えて次のような情報が付きます。
- AI が判定にどれくらい自信を持っているかを 0.0〜1.0 で表し、画面では信頼度として % で表示されます
- AI による判定理由の説明
- 判定の根拠となった引用箇所 (Citations が有効な場合)
- AI が審査の過程で行った作業履歴

結果画面には信頼度のしきい値を調整するスライダーがあり、初期値は 0.7 です。このしきい値は色分けによる強調表示にのみ作用する点に注意が必要です。信頼度がしきい値を下回った項目は黄色で強調されますが、しきい値を変更しても合否やステータスは変わりません。AI が低い信頼度で判定した項目を、人間が優先的に目視すべき箇所として可視化するための機能です。スライダーの値はセッション内のみで保持され、永続保存はされません。

人間が上書き修正する
AI の判定が誤っている場合や補足が必要な場合は、結果を手動で上書きできます。pass/fail を修正し、判断の根拠となる理由コメントを残せます。上書きした項目には「ユーザー上書き」のバッジが付くため、人間が修正した箇所を後から識別できます。この上書きが、後述する精度改善の起点になります。

精度を高める手段
RAPID には判定精度を上げるための機能がいくつか用意されています。
- チェックリストの項目ごとに AI モデルを切り替える。精度重視なら Opus、バランスなら Sonnet、コスト重視なら Haiku といった使い分けができます
- 項目ごとにツールを割り当てる。数値検証のための Code Interpreter、規格書やガイドラインを参照する Knowledge Base、外部サービスと連携する MCP を有効にできます
- 人間の上書き傾向を定期的に集約し、以降の審査に反映するフィードバック集約
examples/ja のサンプルにも、見積書の金額検算で Code Interpreter とナレッジベースを使う例、新薬承認申請でガイドラインをナレッジベースとして参照する例、AWS セキュリティ監査で MCP Gateway 経由に実環境の設定を取得する例が含まれています。
なお、RAPID には特定の項目だけを再審査する機能はなく、再審査は新規ジョブとして全体を再実行します。過去の結果は別ジョブとして残るため履歴は追えますが、部分的なやり直しはできません。
コスト
コストは、常時かかる固定費と、使用量に応じて発生する Bedrock の従量課金に分かれます。使った分だけ課金されるフルサーバーレス構成ではない点には注意が必要です。
デプロイされる主なリソースを、コストの観点で整理してみました。
- VPC と NAT Gateway (常時課金)
- Aurora MySQL Serverless v2 (常時課金、最小 0.5 ACU)
- 各種 Lambda、Step Functions、SQS
- S3 バケット (ドキュメント用・一時保管用・アクセスログ用)
- Cognito、CloudFront + S3 (フロントホスティング)、WAF
- EventBridge Scheduler (フィードバック集約の定期実行)
- Amazon Bedrock の利用料 (従量)
NAT Gateway や Aurora Serverless といった固定費については約 150 ドル/月程度を見込んでおくのが良さそうです。
Bedrock のモデル呼び出し利用料はドキュメントのテキスト量、画像の数やサイズ、チェックリストの項目数によって変動するため、ページ数は目安にとどまりますが、公式は次の例を挙げています。
- 軽量モデル (Claude Haiku など) の場合、おおよそ 80〜85 ページが処理可能で、80 ページで約 0.28 ドル
- 高精度モデル (Claude Opus など) の場合、おおよそ 430 ページが処理可能で、400 ページで約 5.75 ドル
Knowledge Base や Code Interpreter といったエージェント機能を持つ項目は、それらを使わない場合と比べて最大で 10 倍ほどコストが増える可能性があります。実際の料金とトークン使用量は審査結果の画面で確認できるため、自分のサンプルドキュメントで一度試して見積もるのがおすすめです。
おわりに
RAPID は、チェックリストとドキュメントを突き合わせる審査を AI が一次判定し、人間が最終確認する、という分担を実装したソリューションです。
定型のチェックリストに沿って大量の書類を確認している現場であれば、検討する価値があります。判定そのものは AI に任せつつ、最終的な合否は人間が握れるため、審査の責任を保ったまま一次確認の負荷を減らせます。チェックリストと審査対象を差し替えるだけで、仕様適合性の確認から申請書のチェック、社内文書のレビューまで転用できる柔軟さもあります。
一方で固定費のベースラインがある構成のため、常時稼働させるよりも、対象の審査業務が明確な PoC から始めて精度とコストを見極める進め方が向いています。自分の AWS アカウントにそのままデプロイできるので、まずは examples/ja のサンプルを 1 つ取り込み、業務に近い審査を一通り試してみましょう。










