使用 Amazon Bedrock 和 Amazon Transcribe 从语音输入中记录机构知识 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Bedrock 和 Amazon Transcribe 从语音输入中记录机构知识

由 Praveen Kumar Jeyarajan ()、乔俊东 (AWS)、Megan Wu () 和 Rajiv Upadhyay (AWS) 创作 AWS AWS

摘要

获取机构知识对于确保组织成功和韧性至关重要。机构知识代表了员工随着时间的推移积累的集体智慧、见解和经验,这些知识本质上通常是默许的,是非正式地传下来的。这些丰富的信息包括独特的方法、最佳实践和解决错综复杂的问题的解决方案,这些问题可能无法在其他地方记录下来。通过正式化和记录这些知识,公司可以保留机构记忆,促进创新,增强决策流程,并加快新员工的学习曲线。此外,它还促进协作,赋予个人权力,培养持续改进的文化。最终,利用机构知识可以帮助公司利用其最有价值的资产(员工的集体智慧)来应对挑战,推动增长,并在动态的商业环境中保持竞争优势。

这种模式解释了如何通过高级员工的录音来获取机构知识。它使用 Amazon Transcribe 和 A mazon Bedrock 进行系统的记录和验证。通过记录这些非正式知识,您可以将其保留并与随后的员工群共享。这项努力通过纳入通过直接经验获得的实践知识来支持卓越运营,并提高培训计划的有效性。

先决条件和限制

先决条件

限制

  • 此解决方案部署到单个AWS账户。

  • 此解决方案只能部署在提供 Amazon Bedrock 和 Amazon Transcribe 的AWS区域。有关供货情况的信息,请参阅 Amazon B edrock 和 Amazon Transc ri be 的文档。

  • 音频文件必须采用 Amazon Transcribe 支持的格式。有关支持的格式列表,请参阅 Transcribe 文档中的媒体格式

产品版本

  • AWSSDK适用于 Python (Boto3) 版本 1.34.57 或更高版本

  • LangChain 版本 0.1.12 或更高版本

架构

该架构代表了无服务器工作流程。AWS AWSSte@@ p F unctions 编排 Lambda 函数,用于音频处理、文本分析和文档生成。下图显示了 Step Functions 工作流程,也称为状态机

Step Functions 状态机生成文档的架构图

状态机中的每个步骤都由一个不同的 Lambda 函数处理。以下是文档生成过程中的步骤:

  1. preprocessLambda 函数验证传递给 Step Functions 的输入,并列出所提供的 Ama URI zon S3 文件夹路径中存在的所有音频文件。工作流程中的下游 Lambda 函数使用文件列表来验证、汇总和生成文档。

  2. transcribeLambda 函数使用 Amazon Transcribe 将音频文件转换为文本脚本。此 Lambda 函数负责启动转录过程并将语音准确地转换为文本,然后将其存储起来以供后续处理。

  3. validateLambda 函数分析文本记录,确定答案与初始问题的相关性。通过使用 Amazon Bedrock 的大型语言模型 (LLM),它可以识别主题答案和题外答案并将其区分开来。

  4. summarizeLambda 函数使用 Amazon Bedrock 生成连贯而简洁的主题答案摘要。

  5. generateLambda 函数将摘要汇编成结构良好的文档。它可以根据预定义的模板格式化文档,并包括任何其他必要的内容或数据。

  6. 如果任何 Lambda 函数失败,您将通过亚马逊简单通知服务 (亚马逊) 收到一封电子邮件通知。SNS

在整个过程中,AWSStep Functions 确保每个 Lambda 函数都按正确的顺序启动。该状态机具有并行处理能力以提高效率。Amazon S3 存储桶充当中央存储库,通过管理所涉及的各种媒体和文档格式来支持工作流程。

工具

AWS 服务

  • Amazon Bedrock 是一项完全托管的服务,可通过统一的方式提供来自领先的人工智能初创公司和亚马逊的高性能基础模型 (FMs) 供您使用。API

  • AWSLambda 是一项计算服务,可帮助您运行代码,而无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。

  • 亚马逊简单通知服务 (AmazonSNS) 可帮助您协调和管理发布者与客户之间的消息交换,包括网络服务器和电子邮件地址。

  • Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。

  • AWSSt ep Functions 是一项无服务器编排服务,可帮助您组合 Lam AWS bda 函数和其他AWS服务来构建业务关键型应用程序。 

  • Amazon Transcribe 是一项自动语音识别服务,它使用机器学习模型将音频转换为文本。

其他工具

  • LangChain是一个用于开发由大型语言模型支持的应用程序的框架 (LLMs)。

代码存储库

此模式的代码可在 GitHub genai-knowledge-capture存储库中找到。

代码存储库包含以下文件和文件夹:

  • assetsfolder-解决方案的静态资产,例如架构图和公共数据集

  • 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/validatefolder-验证所有答案是否都与同一主题有关的 Python 代码

  • code/code_stack.py— 用于创建AWS资源的AWSCDK构造 Python 文件

  • app.py— 用于在目标AWS账户中部署AWS资源的AWSCDK应用程序 Python 文件

  • requirements.txt— 必须为之安装的所有 Python 依赖项的列表 AWS CDK

  • cdk.json— 用于提供创建资源所需的值的输入文件

最佳实践

提供的代码示例仅用于 proof-of-concept (PoC) 或试运行目的。如果您想将解决方案投入生产,请使用以下最佳实践:

操作说明

任务描述所需技能

导出账户和AWS地区的变量。

要使用环境变AWSCDK量为提供AWS凭证,请运行以下命令。

export CDK_DEFAULT_ACCOUNT=<12-digit AWS account number> export CDK_DEFAULT_REGION=<Region>
AWS DevOps, DevOps 工程师

设置已AWSCLI命名的个人资料。

要为账户设置AWSCLI指定个人资料,请按照配置和凭据文件设置中的说明进行操作。

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 工程师

合成AWSCDK代码。

要将代码转换为AWS CloudFormation 堆栈配置,请运行以下命令。

cdk synth
AWS DevOps, DevOps 工程师
任务描述所需技能

配置基础模型访问权限。

为你的账户启用对 Anthropic Claude 3 Sonnet 模型的访问权限。AWS有关说明,请参阅 Bedrock 文档中的添加模型访问权限

AWS DevOps

在账户中部署资源。

要使用在AWS账户中部署资源 AWSCDK,请执行以下操作:

  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管理控制台,然后在上打开 CloudFormation 控制台https://console.aws.amazon.com/cloudformation/

  4. 确认堆栈已成功部署。有关说明,请参阅在AWS CloudFormation 控制台上查看您的堆栈

AWS DevOps, DevOps 工程师

订阅 Amazon SNS 主题。

要订阅 Amazon SNS 主题以获取通知,请执行以下操作:

  1. 在 CloudFormation 控制台的导航窗格中,选择 Stacks

  2. 选择genai-knowledge-capture-stack堆栈。

  3. 选择输出选项卡。

  4. 找到带有密钥的 Amazon SNS 主题名称SNSTopicName

  5. 按照将电子邮件地址订阅到 Amazon SNS 主题中的说明配置用于接收通知的电子邮件地址

将军 AWS
任务描述所需技能

运行状态机。

  1. 打开 Step Functions 控制台

  2. 状态机页面上,选择 genai-knowledge-capture-stack-state- 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 文档

其他资源