

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Bedrock と Amazon Transcribe を使用して音声入力から組織の知識を文書化する
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe"></a>

*Amazon Web Services、Praveen Kumar Jeyarajan、Jundong Qiao、Rajiv Upadhyay、Megan Wu*

## 概要
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-summary"></a>

組織の成功とレジリエンスを確保するためには、組織の知識を記録することが最優先事項です。組織の知識とは、従業員が長期にわたって蓄積した集合的な知恵、インサイト、経験のことで、多くの場合は本質的に暗黙的で、非公式に受け継がれます。この豊富な情報には、他では文書化されていないような複雑な問題に対する独自のアプローチ、ベストプラクティス、解決策が含まれています。この知識を形式化して文書化することにより、企業は組織の記憶を保持し、イノベーションを促進し、意思決定プロセスを強化し、新入社員の学習曲線を加速させることができます。さらに、連携を促進し、個人に権限を与え、継続的な改善の文化を育みます。組織の知識を活用すると、最終的に、企業は最も重要なアセットである従業員の集合的インテリジェンスに基づいて、課題を乗り越え、成長を促進し、動的なビジネス環境で競争上の優位性を維持することができます。

このパターンでは、上級従業員からの音声記録を通じて組織の知識を記録する方法について説明します。[Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html) と [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) を使用して、体系的な文書化と検証を行います。この非公式な知識を文書化することにより、知識を保存し、後続の従業員の仲間と共有することができます。この取り組みは、運用上の優秀性をサポートするものであり、直接的な経験を通じて獲得した実践的な知識を組み込むことにより、トレーニングプログラムの有効性を向上させます。

## 前提条件と制限
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-prereqs"></a>

**前提条件**
+ アクティブなAWS アカウント
+ Docker が[インストールされていること](https://docs.docker.com/engine/install/)
+ AWS Cloud Development Kit (AWS CDK) バージョン 2.114.1 以降が `us-east-1` または `us-west-2` AWS リージョンに[インストール](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_tools)および[ブートストラップされていること](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_bootstrap)
+ AWS CDK ツールキットバージョン 2.114.1 以降が[インストールされていること](https://docs.aws.amazon.com/cdk/v2/guide/cli.html)
+ [インストール](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)および[設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)済みの AWS コマンドラインインターフェイス (AWS CLI)
+ Python バージョン 3.12 以降が[インストールされていること](https://www.python.org/downloads/)
+ Amazon Transcribe、Amazon Bedrock、Amazon Simple Storage Service (Amazon S3)、および AWS Lambda リソースを作成するためのアクセス権限

**制限**
+ このソリューションは単一 AWS アカウントにデプロイされます。
+ このソリューションは、Amazon Bedrock と Amazon Transcribe が利用可能な AWS リージョンでのみデプロイできます。詳細は、[Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-regions.html) と [Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html#tsc-regions) のドキュメントを参照してください。
+ オーディオファイルは、Amazon Transcribe がサポートする形式である必要があります。サポートされている形式のリストについては、Transcribe ドキュメントの「[Media formats](https://docs.aws.amazon.com/transcribe/latest/dg/how-input.html#how-input-audio)」を参照してください。

**製品バージョン**
+ AWS SDK for Python (Boto3) バージョン 1.34.57 以降
+ LangChain バージョン 0.1.12 以降

## アーキテクチャ
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-architecture"></a>

アーキテクチャは、AWS でのサーバーレスワークフローを表します。[AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) は、オーディオ処理、テキスト分析、ドキュメント生成のために Lambda 関数を調整します。次の図に、*ステートマシン*とも呼ばれる Step Functions ワークフローを示します。

![\[ドキュメントを生成する Step Functions ステートマシンのアーキテクチャ図\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/f1e0106d-b046-4adc-9718-c299efb7b436/images/e90298ca-1b7f-4c3e-97bd-311a9d5a4997.png)


ステートマシンの各ステップは、個別の Lambda 関数によって処理されます。ドキュメント生成プロセスの手順は次のとおりです。

1. `preprocess` Lambda 関数が、Step Functions に渡された入力を検証し、提供された Amazon S3 URI フォルダパスに存在するすべてのオーディオファイルを一覧表示します。ワークフローのダウンストリーム Lambda 関数は、ファイルリストを使用してドキュメントを検証、要約、生成します。

1. `transcribe` Lambda 関数が Amazon Transcribe を使用してオーディオファイルをテキストトランスクリプトに変換します。この Lambda 関数は、文字起こしプロセスを開始し、スピーチをテキストに正確に変換し、後続の処理のために保存します。

1. `validate` Lambda 関数がテキストトランスクリプトを分析し、最初の質問に対する応答の関連性を判断します。Amazon Bedrock で大規模言語モデル (LLM) を使用することにより、トピック関連の回答を特定してトピック外の回答から分離します。

1. `summarize` Lambda 関数が Amazon Bedrock を使用して、トピック関連の回答の一貫した簡潔な概要を生成します。

1. `generate` Lambda 関数が、概要を構造化されたドキュメントにアセンブルします。事前定義されたテンプレートに従ってドキュメントをフォーマットし、追加の必要なコンテンツやデータを含めることができます。

1. いずれかの Lambda 関数が失敗すると、Amazon Simple Notiﬁcation Service (Amazon SNS) から E メール通知が送信されます。

このプロセス全体をとおして、AWS Step Functions は各 Lambda 関数が正しい順序で開始されることを確認します。このステートマシンでは、効率を向上させるための並列処理が可能です。Amazon S3 バケットは中央ストレージリポジトリとして機能し、関連するさまざまなメディアおよびドキュメント形式を管理することでワークフローをサポートします。

## ツール
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-tools"></a>

**AWS サービス**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) は、主要な AI スタートアップ企業や Amazon が提供する高パフォーマンスな基盤モデル (FM) を、統合 API を通じて利用できるようにするフルマネージド型サービスです。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ 「[Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、量にかかわらず、データを保存、保護、取得する上で役立つクラウドベースのオブジェクトストレージサービスです。
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)は、AWS Lambda関数と他のAWS サービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバーレスオーケストレーションサービスです。 
+ [Amazon Transcribe](https://docs.aws.amazon.com/transcribe/latest/dg/what-is.html) は、機械学習モデルを使用して音声をテキストに変換する自動音声認識サービスです。

**その他のツール**
+ [LangChain](https://python.langchain.com/docs/get_started/introduction/) は、言語モデル (LLM) を利用するアプリケーションを開発するためのフレームワークです。

**コードリポジトリ**

このパターンのコードは、GitHub の [genai-knowledge-capture](https://github.com/aws-samples/genai-knowledge-capture) リポジトリで入手できます。

コードリポジトリには以下のファイルとフォルダが含まれています。
+ `assets` フォルダ - アーキテクチャ図やパブリックデータセットなど、ソリューションの静的アセット
+ `code/lambdas` フォルダ - すべての Lambda 関数のための Python コード
  + `code/lambdas/generate` フォルダ - S3 バケット内の要約データからドキュメントを生成する Python コード
  + `code/lambdas/preprocess` フォルダ - Step Functions ステートマシンの入力を処理する Python コード
  + `code/lambdas/summarize` フォルダ - Amazon Bedrock サービスを使用して文字起こしデータを要約する Python コード
  + `code/lambdas/transcribe` フォルダ - Amazon Transcribe を使用してスピーチデータ (オーディオファイル) をテキストに変換する Python コード
  + `code/lambdas/validate` フォルダ - すべての回答が同じトピックに関連しているかどうかを検証する Python コード
+ `code/code_stack.py` - AWS リソースの作成に使用される AWS CDK コンストラクト Python ファイル
+ `app.py` - ターゲット AWS アカウントで AWS リソースをデプロイするために使用される AWS CDK アプリケーション Python ファイル
+ `requirements.txt` - AWS CDK のためにインストールする必要があるすべての Python 依存関係のリスト
+ `cdk.json` - リソースの作成に必要な値を提供する入力ファイル

## ベストプラクティス
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-best-practices"></a>

ここに示すコード例は、PoC (概念実証) またはパイロットのみを目的としています。ソリューションを本番環境に移行する場合は、次のベストプラクティスに従ってください。
+ [Amazon S3 アクセスログ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html)を有効にする
+ [VPC フローログ](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)を有効にする

## エピック
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-epics"></a>

### ローカルワークステーションで AWS 認証情報をセットアップする
<a name="set-up-aws-credentials-on-your-local-workstation"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| アカウントと AWS リージョンの変数をエクスポートする。 | 環境変数を使用して AWS CDK の AWS 認証情報を提供するには、次のコマンドを実行します。<pre>export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number><br />export CDK_DEFAULT_REGION=<Region></pre> | AWS DevOps、DevOps エンジニア | 
| AWS CLI 名前付きプロファイルをセットアップする。 | アカウントに AWS CLI 名前付きプロファイルをセットアップするには、「[Configuration and credential file settings](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」の手順に従います。 | AWS DevOps、DevOps エンジニア | 

### 環境をセットアップします。
<a name="set-up-your-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ローカルワークステーションにリポジトリのクローンを作成する。 | [genai-knowledge-capture](https://github.com/aws-samples/genai-knowledge-capture) リポジトリのクローンを作成するには、ターミナルで次のコマンドを実行します。<pre>git clone https://github.com/aws-samples/genai-knowledge-capture</pre> | AWS DevOps、DevOps エンジニア | 
| (オプション) オーディオファイルを置き換える。 | サンプルアプリケーションをカスタマイズして独自のデータを組み込むには、以下を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps、DevOps エンジニア | 
| Python 仮想環境をセットアップする。 | Python 仮想環境をセットアップするには、次のコマンドを実行します。<pre>cd genai-knowledge-capture<br />python3 -m venv .venv<br />source .venv/bin/activate<br />pip install -r requirements.txt</pre> | AWS DevOps、DevOps エンジニア | 
| AWS CDK コードを合成する。 | コードを AWS CloudFormation スタック設定に変換するには、次のコマンドを実行します。<pre>cdk synth</pre> | AWS DevOps、DevOps エンジニア | 

### ソリューションを設定してデプロイする
<a name="configure-and-deploy-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| 基盤モデルアクセスをプロビジョニングする。 | AWS アカウントの Anthropic Claude 3 Sonnet モデルへのアクセスを有効にします。手順については、Bedrock ドキュメントの「[Add model access](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#model-access-add)」を参照してください。 | AWS DevOps | 
| アカウントにリソースをデプロイします。 | AWS CDK を使用して AWS アカウントでリソースをデプロイするには、以下を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps、DevOps エンジニア | 
| Amazon SNS トピックを購読します。 | 通知用に Amazon SNS トピックを登録するには、次の手順を実行します。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS 全般 | 

### ソリューションをテストする
<a name="test-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ステートマシンを実行します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | アプリ開発者、AWS 全般 | 

### ソリューション内のすべての AWS リソースをクリーンアップする
<a name="clean-up-all-aws-resources-in-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS リソースを削除します。 | ソリューションをテストしたら、リソースをクリーンアップします。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe.html) | AWS DevOps、DevOps エンジニア | 

## 関連リソース
<a name="document-institutional-knowledge-from-voice-inputs-by-using-amazon-bedrock-and-amazon-transcribe-resources"></a>

**AWS ドキュメント**
+ Tag Amazon Bedrock リソース:
  + [モデルアクセス](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
  + [基盤モデルの推論パラメータ](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html)
+ AWS CDK リソース:
  + [Get started with the AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html)
  + [Working with the AWS CDK in Python](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-python.html)
  + [Troubleshooting common AWS CDK issues](https://docs.aws.amazon.com/cdk/v2/guide/troubleshooting.html)
  + [Toolkit commands](https://docs.aws.amazon.com/cdk/v2/guide/cli.html#cli-commands)
+ AWS Step Functions リソース:
  + [Getting started with AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/getting-started-with-sfn.html)
  + [トラブルシューティング](https://docs.aws.amazon.com/step-functions/latest/dg/troubleshooting.html)
+ [Python で Lambda 関数を構築する](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html)
+ [AWS での生成 AI Application Builder](https://docs.aws.amazon.com/solutions/latest/generative-ai-application-builder-on-aws/solution-overview.html)

**その他のリソース**
+ [LangChain ドキュメント](https://python.langchain.com/docs/get_started/introduction)