Amazon Bedrock と Amazon Transcribe を使用して、音声入力から組織の知識を文書化する - AWS 規範ガイダンス

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

Amazon Bedrock と Amazon Transcribe を使用して、音声入力から組織の知識を文書化する

作成者: Praveen Kumar Jeyarajan (AWS)、Jundong Qiao (AWS)、Megan Wu (AWS)、Rajiv Upadhyay (AWS)

コードリポジトリ: genai-knowledge-capture

環境:PoC またはパイロット

テクノロジー: 機械学習と AI、ビジネスの生産性 CloudNative

AWS サービス: Amazon Bedrock、AWS CDK、AWS LambdaAmazon SNSAWS Step FunctionsAmazon Transcribe

[概要]

組織の成功と回復力を確保するには、組織の知識を捉えることが最優先事項です。の知識は、従業員が蓄積した共通の知性、洞察、経験を表し、多くの場合、本質的に暗黙的で、非公式に受け継がれます。この豊富な情報には、他には文書化されていない複雑な問題に対する独自のアプローチ、ベストプラクティス、および解決策が含まれます。この知識を形式化して文書化することで、企業は組織の記憶を保持し、イノベーションを促進し、意思決定プロセスを強化し、新しい従業員の学習曲線を加速させることができます。さらに、コラボレーションを促進し、個人に権限を与え、継続的な改善の文化を育みます。最終的には、組織的知識を活用することで、企業はワークフォースの集合的インテリジェンスである最も価値のあるアセットを活用して、課題を解決し、成長を促進し、動的なビジネス環境で競争上の優位性を維持するのに役立ちます。

このパターンでは、上級従業員からの音声録音を通じて組織の知識をキャプチャする方法を説明します。Amazon TranscribeAmazon Bedrock を使用して、体系的なドキュメント化と検証を行います。この非公式な知識を文書化することで、それを保存し、後続の従業員のグループと共有できます。この取り組みは、運用上の優秀性をサポートし、直接的な経験を通じて取得した実践的な知識を組み込むことで、トレーニングプログラムの有効性を向上させます。

前提条件と制限

前提条件

制限

  • このソリューションは単一 AWS アカウントにデプロイされます。

  • このソリューションは、Amazon Bedrock と Amazon Transcribe が利用可能な AWS リージョンでのみデプロイできます。可用性の詳細については、Amazon BedrockAmazon Transcribeのドキュメントを参照してください。

  • オーディオファイルは、Amazon Transcribe がサポートする形式である必要があります。サポートされている形式のリストについては、Transcribe ドキュメントの「メディア形式」を参照してください。

製品バージョン

  • AWS SDK for Python (Boto3) バージョン 1.34.57 以降

  • LangChain バージョン 0.1.12 以降

アーキテクチャ

アーキテクチャは、AWS のサーバーレスワークフローを表します。AWS Step Functions は、音声処理、テキスト分析、ドキュメント生成のために Lambda 関数をオーケストレーションします。次の図は、ステートマシン とも呼ばれる Step Functions ワークフローを示しています。

ドキュメントを生成する Step Functions ステートマシンのアーキテクチャ図

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

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

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

  3. validate Lambda 関数はテキスト文字起こしを分析し、最初の質問に対するレスポンスの関連性を判断します。Amazon Bedrock を通じて大規模言語モデル (LLM) を使用することで、トピック上の回答を識別し、トピック外の回答から分離します。

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

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

  6. Lambda 関数のいずれかが失敗すると、Amazon Simple Notification Service (Amazon SNS) を通じて E メール通知が送信されます。

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

ツール

AWS サービス

  • Amazon Bedrock は、主要な AI スタートアップと Amazon からの高性能な基盤モデル (FMsを統合 API を通じて使用できるようにするフルマネージドサービスです。

  • AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。

  • Amazon Simple Notification Service (Amazon SNS)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。

  • Amazon Simple Storage Service (Amazon S3) は、量にかかわらず、データを保存、保護、取得する上で役立つクラウドベースのオブジェクトストレージサービスです。

  • AWS Step Functionsは、AWS Lambda関数と他のAWS サービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバーレスオーケストレーションサービスです。 

  • Amazon Transcribe は、機械学習モデルを使用して音声をテキストに変換する自動音声認識サービスです。

その他のツール

  • LangChain は、大規模言語モデル (LLMs。

コードリポジトリ

このパターンのコードはリポジトリにあります GitHub genai-knowledge-capture

コードリポジトリには以下のファイルとフォルダが含まれています。

  • assets フォルダ – アーキテクチャ図やパブリックデータセットなど、ソリューションの静的アセット

  • code/lambdas folder – すべての Lambda 関数の Python コード

    • code/lambdas/generate folder - S3 バケット内の要約データからドキュメントを生成する Python コード

    • code/lambdas/preprocess folder - Step Functions ステートマシンの入力を処理する Python コード

    • code/lambdas/summarize フォルダ - Amazon Bedrock サービスを使用して文字起こしされたデータを要約する Python コード

    • code/lambdas/transcribe フォルダ - Amazon Transcribe を使用して音声データ (オーディオファイル) をテキストに変換する Python コード

    • code/lambdas/validate folder - すべての回答が同じトピックに関連しているかどうかを検証する Python コード

  • code/code_stack.py – AWS CDK は、AWS リソースの作成に使用される Python ファイルを構築します。

  • app.py – ターゲット AWS アカウントに AWS リソースをデプロイするために使用される AWS CDK アプリケーション Python ファイル

  • requirements.txt – AWS CDK にインストールする必要があるすべての Python 依存関係のリスト

  • cdk.json – リソースの作成に必要な値を提供する入力ファイル

ベストプラクティス

提供されているコード例は、 proof-of-concept (PoC ) またはパイロットのみを目的としています。ソリューションを本番環境に移行する場合は、次のベストプラクティスを使用します。

エピック

タスク説明必要なスキル

アカウントと AWS リージョンの変数をエクスポートします。

環境変数を使用して AWS CDK の AWS 認証情報を提供するには、次のコマンドを実行します。

export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number> export CDK_DEFAULT_REGION=<Region>
AWS DevOps、 DevOps エンジニア

AWS CLI の名前付きプロファイルを設定します。

アカウントの AWS CLI 名前付きプロファイルを設定するには、「設定と認証情報ファイルの設定」の手順に従います。

AWS DevOps、 DevOps エンジニア
タスク説明必要なスキル

リポジトリをローカルワークステーションにクローンします。

genai-knowledge-capture リポジトリのクローンを作成するには、ターミナルで次のコマンドを実行します。

git clone https://github.com/aws-samples/genai-knowledge-capture
AWS DevOps、 DevOps エンジニア

(オプション) オーディオファイルを置き換えます。

サンプルアプリケーションをカスタマイズして独自のデータを組み込むには、次の手順を実行します。

  1. クローンされたリポジトリの assets/audio_samplesフォルダに移動します。

  2. サンプルオーディオファイルを含むフォルダを削除します。

  3. 分析するトピックごとにフォルダを作成します。

  4. オーディオファイルをそれぞれのフォルダに転送します。

AWS DevOps、 DevOps エンジニア

Python 仮想環境をセットアップします。

Python 仮想環境をセットアップするには、次のコマンドを実行します。

cd genai-knowledge-capture python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
AWS DevOps、 DevOps エンジニア

AWS CDK コードを合成します。

コードを AWS CloudFormation スタック設定に変換するには、次のコマンドを実行します。

cdk synth
AWS DevOps、 DevOps エンジニア
タスク説明必要なスキル

基盤モデルアクセスをプロビジョニングします。

AWS アカウントの Anthropic Claude 3 Sonnet モデルへのアクセスを有効にします。手順については、Bedrock ドキュメントの「モデルアクセスの追加」を参照してください。

AWS DevOps

アカウントにリソースをデプロイします。

AWS CDK を使用して AWS アカウントにリソースをデプロイするには、次の手順を実行します。

  1. (オプション) クローンされたリポジトリのルートの app.py ファイルで、AWS CloudFormation スタック名を更新します。デフォルトのスタック名は ですgenai-knowledge-capture-stack

  2. リソースをデプロイするには、cdk deploy コマンドを実行します。

    cdk deploy コマンドは、レイヤー 3 コンストラクトを使用して、一連の Lambda 関数、S3 バケット、Amazon SNS トピック、および Step Functions ステートマシンを作成します。assets/audio_samples フォルダ内のオーディオファイルは、デプロイ中に S3 バケットにコピーされます。

  3. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/cloudformation/ で CloudFormation コンソールを開きます。

  4. スタックが正常にデプロイされたことを確認します。手順については、「AWS CloudFormation コンソールでのスタックの確認」を参照してください。

AWS DevOps、 DevOps エンジニア

Amazon SNS トピックを購読します。

通知用に Amazon SNS トピックをサブスクライブするには、次の手順を実行します。

  1. CloudFormation コンソールのナビゲーションペインで、スタック を選択します。

  2. genai-knowledge-capture-stack スタックを選択します。

  3. [出力] タブを選択します。

  4. キー を使用して Amazon SNS トピック名を検索しますSNSTopicName

  5. Amazon SNSメールアドレスを設定します。

AWS 全般
タスク説明必要なスキル

ステートマシンを実行します。

  1. Step Functions コンソールを開きます。

  2. ステートマシンページで、-genai-knowledge-capture-stackstate-machine を選択します。

  3. [実行のスタート] を選択します。

  4. (オプション) 名前 ボックスに、実行の名前を入力します。

  5. 入力エリアで、プレースホルダーテキストを置き換えて次の JSON オブジェクトを入力します。

    • <Name> は、ドキュメントに名前を付けるものです。

    • <S3 bucket name> は、オーディオファイルを含む Amazon S3 バケットの名前です。

    • <Folder path> は、オーディオファイルを含むディレクトリです。

    {   "documentName": "<Name>",   "audioFileFolderUri": "s3://<S3 bucket name>/<Folder path>" }
  6. [実行のスタート] を選択します。

  7. 実行の詳細ページで、結果を確認し、実行が完了するまで待ちます。

アプリ開発者、AWS 全般
タスク説明必要なスキル

AWS リソースを削除します。

ソリューションをテストしたら、リソースをクリーンアップします。

  1. S3 バケットからすべてのオブジェクトを削除してから、バケットを削除します。詳細については、バケットを削除するを参照してください。

  2. クローンされたリポジトリから、 コマンドを実行しますcdk destroy

AWS DevOps、 DevOps エンジニア

関連リソース

AWS ドキュメント

その他のリソース