本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon Bedrock 和 Amazon Transcribe 从语音输入中记录机构知识
由 Praveen Kumar Jeyarajan ()、乔俊东 (AWS)、Megan Wu () 和 Rajiv Upadhyay (AWS) 创作 AWS AWS
摘要
获取机构知识对于确保组织成功和韧性至关重要。机构知识代表了员工随着时间的推移积累的集体智慧、见解和经验,这些知识本质上通常是默许的,是非正式地传下来的。这些丰富的信息包括独特的方法、最佳实践和解决错综复杂的问题的解决方案,这些问题可能无法在其他地方记录下来。通过正式化和记录这些知识,公司可以保留机构记忆,促进创新,增强决策流程,并加快新员工的学习曲线。此外,它还促进协作,赋予个人权力,培养持续改进的文化。最终,利用机构知识可以帮助公司利用其最有价值的资产(员工的集体智慧)来应对挑战,推动增长,并在动态的商业环境中保持竞争优势。
这种模式解释了如何通过高级员工的录音来获取机构知识。它使用 Amazon Transcribe 和 A mazon Bedrock 进行系统的记录和验证。通过记录这些非正式知识,您可以将其保留并与随后的员工群共享。这项努力通过纳入通过直接经验获得的实践知识来支持卓越运营,并提高培训计划的有效性。
先决条件和限制
先决条件
一个活跃的AWS账户
AWSCloud Development Kit (AWSCDK) 版本 2.114.1 或更高版本,已安装并引导到或区域
us-east-1
us-west-2
AWSAWSCDK工具包版本 2.114.1 或更高版本,已安装
创建 Amazon Transcribe、Amazon Bedrock、亚马逊简单存储服务 (Amazon S3) Service 和 Lambda 资源的权限 AWS
限制
此解决方案部署到单个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 工作流程,也称为状态机。
状态机中的每个步骤都由一个不同的 Lambda 函数处理。以下是文档生成过程中的步骤:
preprocess
Lambda 函数验证传递给 Step Functions 的输入,并列出所提供的 Ama URI zon S3 文件夹路径中存在的所有音频文件。工作流程中的下游 Lambda 函数使用文件列表来验证、汇总和生成文档。transcribe
Lambda 函数使用 Amazon Transcribe 将音频文件转换为文本脚本。此 Lambda 函数负责启动转录过程并将语音准确地转换为文本,然后将其存储起来以供后续处理。validate
Lambda 函数分析文本记录,确定答案与初始问题的相关性。通过使用 Amazon Bedrock 的大型语言模型 (LLM),它可以识别主题答案和题外答案并将其区分开来。summarize
Lambda 函数使用 Amazon Bedrock 生成连贯而简洁的主题答案摘要。generate
Lambda 函数将摘要汇编成结构良好的文档。它可以根据预定义的模板格式化文档,并包括任何其他必要的内容或数据。如果任何 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
代码存储库包含以下文件和文件夹:
assets
folder-解决方案的静态资产,例如架构图和公共数据集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
folder-验证所有答案是否都与同一主题有关的 Python 代码
code/code_stack.py
— 用于创建AWS资源的AWSCDK构造 Python 文件app.py
— 用于在目标AWS账户中部署AWS资源的AWSCDK应用程序 Python 文件requirements.txt
— 必须为之安装的所有 Python 依赖项的列表 AWS CDKcdk.json
— 用于提供创建资源所需的值的输入文件
最佳实践
提供的代码示例仅用于 proof-of-concept (PoC) 或试运行目的。如果您想将解决方案投入生产,请使用以下最佳实践:
启用VPC流日志
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
导出账户和AWS地区的变量。 | 要使用环境变AWSCDK量为提供AWS凭证,请运行以下命令。
| AWS DevOps, DevOps 工程师 |
设置已AWSCLI命名的个人资料。 | 要为账户设置AWSCLI指定个人资料,请按照配置和凭据文件设置中的说明进行操作。 | AWS DevOps, DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
将存储库克隆到您的本地工作站。 | 要克隆genai-knowledge-capture
| AWS DevOps, DevOps 工程师 |
(可选)替换音频文件。 | 要自定义示例应用程序以包含您自己的数据,请执行以下操作:
| AWS DevOps, DevOps 工程师 |
设置 Python 虚拟环境。 | 要设置 Python 虚拟环境,请运行以下命令。
| AWS DevOps, DevOps 工程师 |
合成AWSCDK代码。 | 要将代码转换为AWS CloudFormation 堆栈配置,请运行以下命令。
| AWS DevOps, DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
配置基础模型访问权限。 | 为你的账户启用对 Anthropic Claude 3 Sonnet 模型的访问权限。AWS有关说明,请参阅 Bedrock 文档中的添加模型访问权限。 | AWS DevOps |
在账户中部署资源。 | 要使用在AWS账户中部署资源 AWSCDK,请执行以下操作:
| AWS DevOps, DevOps 工程师 |
订阅 Amazon SNS 主题。 | 要订阅 Amazon SNS 主题以获取通知,请执行以下操作:
| 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
运行状态机。 |
| 应用程序开发者,一般 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
移除AWS资源。 | 测试解决方案后,清理资源:
| AWS DevOps, DevOps 工程师 |
相关资源
AWS 文档
Amazon Bedrock 资源:
AWSCDK资源:
AWSStep Functions 资源:
其他资源