この概念実証ソリューションでは、企業の上級従業員からの音声録音を通じて部族の知識を取得するために使用できる潜在的なソリューションについて説明します。 Amazon Transcribe および Amazon Bedrock サービスを使用して入力データを体系的に文書化および検証するための方法論の概要を説明します。この非公式の知識を形式化するための構造を提供することにより、このソリューションはその永続性と、組織内のその後の従業員集団への適用性を保証します。この取り組みにより、優れた運用を継続的に維持できるだけでなく、直接の経験から得た実践的な知識を組み込むことでトレーニング プログラムの有効性も向上します。
このデモアプリケーションは、Amazon Transcribe と Amazon Bedrock を使用したドキュメント生成アプリケーションの概念実証です。
この図は、AWS クラウド リージョン内で AWS Step Functions によって調整されるワークフローのソリューション アーキテクチャを示しています。ワークフローは、ユーザー入力を処理するように設計されたいくつかのステップで構成されており、各ステップで成功と失敗を処理するメカニズムが備えられています。以下にプロセスの流れを説明します。
ユーザー入力: ワークフローは、 preprocess
Lambda 関数をトリガーするユーザー入力によって開始されます。
Preprocess : 入力は最初に前処理されます。成功した場合は、 transcribe
ステップに進みます。失敗すると、Amazon SNS がトリガーされて通知が送信されます。
Transcribe : このステップでは、前のステップの出力が取得されます。文字起こしが成功すると検証ステップに進み、文字起こし出力は Amazon S3 バケットに保存されます。
Validate : 転記されたデータが検証されます。検証結果に基づいて、ワークフローは次のように分岐します。
Summarize : 検証後、データが正常に要約されると、要約されたテキストが Amazon S3 バケットに保存されます。失敗すると、Amazon SNS がトリガーされて通知が送信されます。
Amazon Bedrock は、 Lambda の検証機能と要約機能をサポートするコアサービスです。
生成: この最後のステップでは、要約されたテキストから最終ドキュメントを生成します。失敗した場合は、Amazon SNS がトリガーされて通知が送信されます。
プロセスの各ステップには「成功」または「失敗」の経路がマークされており、ワークフローがさまざまな段階でエラーを処理できるかどうかを示します。失敗した場合、Amazon SNS を使用してユーザーに通知が送信されます。
AWS Step Functions ワークフローは中央オーケストレーターとして動作し、各タスクが正しい順序で実行されることを保証し、各ステップの成功または失敗を適切に処理します。
cdk.json
ファイルは、CDK ツールキットにアプリの実行方法を指示します。
このプロジェクトは、標準の Python プロジェクトと同様にセットアップされます。初期化プロセスでは、このプロジェクト内に virtualenv も作成され、 .venv
ディレクトリに保存されます。 virtualenv を作成するには、パスにvenv
パッケージにアクセスできるpython3
(または Windows の場合はpython
) 実行可能ファイルがあることが前提となります。何らかの理由で virtualenv の自動作成が失敗した場合は、virtualenv を手動で作成できます。
MacOS および Linux で virtualenv を手動で作成するには:
$ python3 -m venv .venv
init プロセスが完了し、virtualenv が作成されたら、次の手順を使用して virtualenv をアクティブ化できます。
$ source .venv/bin/activate
Windows プラットフォームの場合は、次のように virtualenv をアクティブ化します。
% .venvScripts activate.bat
virtualenv がアクティブ化されたら、必要な依存関係をインストールできます。
$ pip install -r requirements.txt
他の CDK ライブラリなどの追加の依存関係を追加するには、それらをsetup.py
ファイルに追加し、 pip install -r requirements.txt
コマンドを再実行します。
この時点で、このコードの CloudFormation テンプレートを合成できるようになります。
$ cdk synth
他の CDK ライブラリなどの追加の依存関係を追加するには、それらをsetup.py
ファイルに追加し、 pip install -r requirements.txt
コマンドを再実行します。
特定のアカウントおよびリージョンで cdk を初めて実行する場合は、ブートストラップする必要があります。
$ cdk bootstrap
ブートストラップが完了したら、cdk のデプロイに進むことができます。
$ cdk deploy
初めてデプロイする場合、ECS (Amazon Elastic Container Service) で複数の Docker イメージを構築するプロセスに約 30 ~ 45 分かかる場合があります。完了するまでしばらくお待ちください。その後、docgen-stack のデプロイが開始されます。通常、これには約 5 ~ 8 分かかります。
デプロイメントプロセスが完了すると、ターミナルに cdk の出力が表示され、CloudFormation コンソールでステータスを確認することもできます。
将来のコストを避けるために CDK の使用を終了した後に CDK を削除するには、コンソールから削除するか、ターミナルで次のコマンドを実行します。
$ cdk destroy
CDK によって生成された S3 バケットを手動で削除する必要がある場合もあります。コストの発生を避けるために、生成されたリソースはすべて削除してください。
cdk ls
アプリ内のすべてのスタックをリストしますcdk synth
合成された CloudFormation テンプレートを出力しますcdk deploy
このスタックをデフォルトの AWS アカウント/リージョンにデプロイしますcdk diff
デプロイされたスタックと現在の状態を比較しますcdk docs
CDK ドキュメントを開くcdk destroy
dstroys 1 つ以上の指定されたスタック code # Root folder for code for this solution
├── lambdas # Root folder for all lambda functions
│ ├── preprocess # Lambda function that processes user input, and outputs audio files uris for Amazon Transcribe
│ ├── transcribe # Lambda function that triggers Amazon Transcribe batch transcription
│ ├── validate # Lambda function that analyzes answers from Amazon Transcribe using LLMs from Amazon Bedrock
│ ├── summarize # Lambda function that summarizes on-topic texts from Amazon Transcribe using LLMs from Amazon Bedrock
│ └── generate # Lambda function that generates documents from the summary.
└── code_stack.py # Amazon CDK stack that deploys all AWS resources
DocGen アプリケーションを調整して独自のデータを組み込むには、次の手順に従う必要があります。
導入時に、AWS CDK インフラストラクチャにより、指定された Amazon S3 バケットへのオーディオ ファイルの自動転送が容易になります。その後、AWS Step Function の実行を開始して、処理フェーズを開始できます。
ソリューションがデプロイされたら、電子メールを SNS トピックに登録して通知を受け取ることができます。
SNSのメール通知をフォローしてください。
StepFunction ワークフロー内のいずれかのステップが失敗した場合、電子メール通知が届きます。
デプロイ後、次のコマンドを使用して、デプロイされた AWS ステート マシンをトリガーできます。
aws stepfunctions start-execution
--state-machine-arn "arn:aws:states:<your aws region>:<your account id>:stateMachine:genai-knowledge-capture-stack-state-machine"
--input "{"documentName": "<your document name>", "audioFileFolderUri": "s3://<your s3 bucket>/assets/audio_samples/what is amazon bedrock/"}"
詳細については、「貢献」を参照してください。
このライブラリは、MIT-0 ライセンスに基づいてライセンスされています。 LICENSE ファイルを参照してください。