使用Amazon Transcribe和Amazon Bedrock Guardrails安全地总结通话记录 | Amazon Web Services

2024-10-17 17:37:04 英文原文

鉴于现代商务环境中会议、访谈和客户互动的数量,音频记录在捕捉有价值的信息方面发挥了重要作用。手动转录和总结这些录音可能是一项耗时且枯燥的任务。幸运的是,技术的进步使这一过程变得更加高效。生成式AI语音识别技术和自动语音识别(ASR)为自动化解决方案铺平了道路,这些解决方案可以简化这一过程。

客服代表每天接听大量的电话。此前,通话会被录音并在之后手动审查以确保符合合规性、法规和公司政策的要求。通话录音需要被转写成文本,然后进行摘要,并在分析之前对个人身份信息(PII)进行模糊处理,这导致了获取洞察的延迟。

红化个人身份信息(PII)在安全方面是一个至关重要的实践,原因有多个。维护个人隐私和保护个人信息不仅是一项道德责任,也是法律要求。在此篇文章中,我们将向您展示如何使用亚马逊 transcription(或 亚马逊 Transcribe)获取发送到的通话的近乎实时的文字转录亚马逊Bedrock用于摘要和敏感数据删除。我们将介绍一种使用该架构的方法。 注意:后半句“我们将介绍一种使用该架构的方法”可能不够准确,原文中的"architecture that uses"缺少具体对象或技术细节,建议补充完整后再进行翻译。如果需要保留原意,则直接输出原文:"for summarization and sensitive data redaction. We’ll walk through an architecture that uses"AWS 步骤函数以编排流程,提供无缝集成和高效处理。

Amazon Bedrock 是一项完全管理的服务,提供来自AI21 Labs、Anthropic、Cohere、Meta、Stability AI、Mistral AI和亚马逊等领先模型提供商的高性能基础模型(FMs),并通过单一API为您提供一系列构建生成式人工智能应用程序所需的功能,包括安全性、隐私性和负责任的人工智能。您可以使用亚马逊Bedrock防护措施删红化(或直接翻译为“红化”、“遮蔽”等具体上下文中的适当词汇)敏感信息如个人身份信息(PII)在生成的通话转写摘要中找到的内容会被清理并总结后发送给分析师。这为更快地访问通话趋势提供了便利,同时保护了客户隐私。

解决方案概述

该解决方案的架构设计为可扩展、高效且符合隐私法规。它包括以下关键组件:

  1. 记录录音– 一个音频文件,例如会议或支持通话,以转录和总结
  2. 步骤函数工作流协调转录和摘要过程
  3. 亚马逊_TRANSCRIBE将音频记录转换成文字
  4. 亚马逊Bedrock总结转写内容并移除个人身份信息.PII
  5. 亚马逊简单通知服务将摘要发送给指定接收人
  6. 收件人接收汇总并去除了个人身份信息的对话记录

以下图表显示了架构溢出–

Step Functions编排的工作流如下:

  1. 音频记录作为输入提供给Step Functions工作流。这可以手动或自动完成,具体取决于特定用例和集成需求。
  2. 该工作流调用Amazon Transcribe,将多说话人的音频记录转换为文本形式的、按发言者划分的转录。Amazon Transcribe 使用先进的语音识别算法和机器学习(ML)模型来准确地划分发言人并转录音频,处理各种口音、背景噪音和其他挑战。
  3. 亚马逊Transcribe生成的转录输出然后传递给亚马逊Bedrock上的Anthropic的Claude 3 Haiku模型通过AWS Lambda该模型被选择是因为它相对于其他模型具有较低的延迟和成本。模型首先根据其摘要指令对转录文本进行总结,然后通过Amazon Bedrock护栏评估生成的摘要输出(即模型响应),以删除个人身份信息(PII)。要了解它是如何阻止有害内容的,请参阅亚马逊Bedrock护栏的工作原理指令和对话记录都被作为上下文传递给模型。
  4. 亚马逊Bedrock的输出存储在亚马逊简单存储服务(Amazon S3)并发送给指定的接收者使用亚马逊简单通知服务(Amazon SNS)。Amazon SNS支持多种投递渠道,包括电子邮件、短信和移动设备推送通知,确保摘要能够及时且可靠地送达预定接收人。

接收者可以查看简洁的摘要,快速掌握原始音频记录中的关键点和洞察。此外,敏感信息已被删除,以维护隐私并符合相关法规。

以下图表显示了Step Functions工作流——

先决条件

开始前请遵循以下步骤:

  1. 亚马逊Bedrock用户需要在模型可用之前请求访问权限。这是一个一次性操作。对于此解决方案,您需要在Amazon Bedrock上启用对Anthropic的Claude 3 Haiku模型的访问权限。欲了解更多信息,请参阅访问Amazon Bedrock基础模型如下面所述,当前仅在美国西部(俄勒冈)us-west-2地区支持部署。AWS 区域用户可以探索其他模型(如有需要)。您可能需要进行一些自定义设置,以便在具有不同模型可用性的其他区域部署(例如us-east-1区域托管Anthropic的Claude 3.5 Sonnet)。在选择模型之前,请确保考虑模型的质量、速度和成本之间的权衡。
  2. 创建一个防护栏用于PII脱敏。配置过滤器以阻止或遮掩敏感信息。此选项可以在Amazon Bedrock控制台中找到。添加敏感信息过滤功能在创建防护栏时的页面。要了解如何为其他用例配置过滤器,请参阅使用敏感信息过滤器从对话中删除个人身份信息.

部署解决方案资源

部署解决方案,下载anAWS云 formation用于在您的AWS账户中自动配置所需资源的模板。该模板设置以下组件:

  • Step Functions 工作流
  • Lambda函数
  • 一个SNS主题
  • 一个S3存储桶
  • 亚马逊密钥管理服务用于数据加密和解密的(AWS KMS)密钥

通过使用此模板,您可以快速部署样本解决方案,并且只需要最少的手动配置。该模板需要以下参数:

  • 用于发送摘要的电子邮件地址摘要将发送到此地址。在接收额外通知之前,您必须确认初始的Amazon SNS确认邮件。
  • 概要说明这些是给亚马逊Bedrock模型生成摘要的指令
  • 护栏ID –这是您最近创建的防护栏的ID,在Amazon Bedrock Guardrails控制台中可以找到它。防护栏概述

无实际内容需要翻译,保持原样。原文:The摘要说明作为环境变量读入您的Lambda函数中。

# 使用提供的指令来生成摘要。如果没有提供指令,则使用默认值。
SUMMARY_INSTRUCTIONS = os.getenv('SUMMARY_INSTRUCTIONS')

这些内容将作为您向Anthropic的Claude 3 Haiku模型传递的有效负载的一部分被使用。这里给出这部分代码是为了让您了解如何将指令和文本传递给模型。

# 创建需要发送到Anthropic模型的有效负载。
        user_message = {"role": "user", "content": f"{SUMMARY_INSTRUCTIONS}{transcript}"}
        messages = [user_message]
response = generate_message(bedrock_client, 'anthropic.claude-3-haiku-20240307-v1:0"', "", messages, 1000)

generate_message()函数包含了调用Amazon Bedrock的代码,以及相关的护栏ID和其他相关参数。

def generate_message(bedrock_runtime, model_id, system_prompt, messages, max_tokens):
    body = json.dumps(
        {
            "anthropic_version": "bedrock-2023-05-31",
            "max_tokens": max_tokens,
            "system": system_prompt,
            "messages": messages
        }
    )
print(f'调用模型: {BEDROCK_MODEL_ID}')
 
    response = bedrock_runtime.invoke_model(
        body=body,
        modelId=BEDROCK_MODEL_ID,
        # contentType=contentType,
        guardrailIdentifier =BEDROCK_GUARDRAIL_ID,
        guardrailVersion ="1",
        trace ="ENABLED")
    response_body = json.loads(response.get('body').read())
    print(f'响应: {response}')
    return response_body

部署解决方案

使用AWS CloudFormation部署资源后,完成以下步骤:

  1. 添加一个Lambda层。

虽然AWS Lambda会定期更新包含的AWS Boto3版本,但在撰写本文时,它仍然提供版本1.34.126。要使用Amazon Bedrock Guardrails,你需要1.34.90或更高版本,为此我们将添加一个Lambda层来更新Boto3。你可以按照以下步骤操作:官方开发者指南关于如何添加Lambda层。

创建 Lambda 层有不同的方法。一种简单的方法是使用文中概述的步骤。打包图层内容,它引用了一个示例应用程序仓库。你应该能够在requirements.txt文件的内容中将requests==2.31.0替换为boto3,这将会安装最新可用版本,然后创建一个层。

要将层添加到Lambda,请确保指定的参数在配置中正确。创建层匹配已部署的Lambda。也就是说,你需要将compatible-architectures更新为x86_64。

  1. 确认您在创建CloudFormation堆栈后几分钟内收到的Amazon SNS电子邮件确认。
  2. 在AWS CloudFormation控制台上,找到刚刚创建的堆栈
  3. 在栈的输出制表符,查找与之关联的值资产桶名称它看起来像这样的东西摘要生成器资产桶-xxxxxxxxxxxxx.
  4. 在Amazon S3控制台中,找到您的S3资产桶。

这是您上传录音文件的地方。有效的文件格式有MP3、MP4、WAV、FLAC、AMR、OGG和WebM。

  1. 将您的录音上传到Amazon S3中的录音文件夹中

上传录音会自动触发AWS Step Functions状态机。在此示例中,我们使用了一个样本团队会议录音来自样本录音.

  1. 在AWS Step Functions控制台上,找到summary-generator状态机。选择具有相应状态的状态机名称跑步.

在这里,你可以观看状态机处理录音时的进度。当它达到其成功您应该会收到一封包含录音摘要的电子邮件。或者,您可以导航到S3资产桶,在转录文件夹中查看转写内容。

扩展解决方案

你现在有一个可行的解决方案,这里有一些潜在的想法来根据你的具体需求定制该解决方案:

  • 尝试调整过程以适应您的可用源内容和所需的输出:
    • 对于有文字记录的情况,创建一个替代的AWS Step Functions工作流来导入现有的基于文本或PDF的文字记录
    • вместо использования Amazon SNS通过电子邮件通知接收者,您可以使用它将输出发送到不同的端点,例如团队协作站点或团队的聊天频道。请注意," вместо использования" 是原文中不存在的部分,可能是翻译时的一个小错误,正确的翻译应该是: 而不是使用Amazon SNS通过电子邮件通知接收者,您可以使用它将输出发送到不同的端点,例如团队协作站点或团队的聊天频道。
  • 尝试更改提供的AWS CloudFormation堆栈参数以针对Amazon Bedrock生成特定于您的用例的输出。以下是一些示例:
    • 在总结公司的财报电话会议时,可以让模型关注潜在的有利机会、值得关注的领域以及你应该继续监视的事宜。
    • 如果你使用该模型来总结一门课程的讲座,它可以识别即将到来的任务,概括关键概念,列出事实,并从录音中过滤掉闲聊内容。
  • 对于同一份录音,为不同的听众创建不同的摘要:
    • 工程师的小结侧重于设计决策、技术挑战和即将交付的任务。
    • 项目经理的总结侧重于时间表、成本、交付成果和行动项。
    • 项目赞助商收到关于项目状态和升级情况的简要更新
    • 对于较长的录音,尝试为不同兴趣层次和时间承诺生成摘要。例如,创建一句话、一个段落、一页或深入的摘要。除了提示之外,你可能还需要调整最大tokens采样数参数以适应不同内容长度。

清理整洁

清理为此解决方案创建的资源以避免产生费用。您可以使用一个AWS SDK,的亚马逊网络服务命令行接口(AWS CLI),或控制台。

  1. 删除Amazon Bedrock防护栏和你创建的Lambda层
  2. 删除CloudFormation堆栈

要使用控制台,请按照以下步骤操作:

  1. 在Amazon Bedrock控制台的导航菜单中,选择护栏选择你的防护栏,然后选取删除.
  2. 在AWS Lambda控制台上,在导航菜单中选择选择你的层,然后选择删除.
  3. 在AWS CloudFormation控制台上,在导航菜单中选择堆栈选择你创建的堆栈,然后选取删除.

删除堆栈不会删除相关的 S3 存储桶。如果您不再需要录音或转录文件,可以单独删除存储桶。Amazon Transcribe 设计为在 90 天后自动删除转写任务。但是,在 90 天保留期结束之前,您可以选择手动删除这些任务。

结论

随着企业将数据作为决策的基础,能够高效地从音频记录中提取洞察力是不可或缺的。通过利用亚马逊Bedrock和Amazon Transcribe的生成式AI的力量,您的组织可以创建音频记录的简洁摘要,同时保持隐私和合规性。所提出的架构展示了如何使用AWS Step Functions来编排AWS服务,以简化和自动化复杂的业务流程,使组织能够专注于核心业务活动。

此解决方案不仅节省时间和精力,还确保敏感信息被屏蔽,从而减轻潜在风险并促进符合数据保护法规。随着组织继续生成和处理大量音频数据,此类解决方案将变得越来越重要,对于获取洞察、做出明智决策以及保持竞争优势至关重要。


关于作者

雅什·亚姆桑瓦r 是亚马逊网络服务(AWS)的机器学习架构师。他负责设计高性能、可扩展的机器学习基础设施,以优化从训练到部署的整个机器学习模型生命周期。Yash 与 ML 研究团队紧密合作,推动大型语言模型和其他尖端机器学习技术的可能性边界。

萨瓦尔·赫尔特是一位在AWS工作的解决方案架构师,专长于AI/ML和云架构,热衷于帮助企业利用尖端技术克服复杂挑战。他的专业知识在于设计和优化机器学习工作流、提升系统性能,并使先进的AI解决方案更加易于获取且成本效益更高,特别关注生成式人工智能。在业余时间,Sawyer喜欢旅行、与家人共度时光以及了解云计算和人工智能领域的最新发展。

关于《使用Amazon Transcribe和Amazon Bedrock Guardrails安全地总结通话记录 | Amazon Web Services》
暂无评论

摘要

鉴于现代商业环境中会议、面试和客户互动的数量庞大,音频录音在捕捉有价值的信息方面发挥着关键作用。您可能需要一些自定义设置以部署到具有不同模型可用性的其他区域(例如 us-east-1,该区域托管 Anthropic 的 Claude 3.5 Sonnet)。确认几秒钟后创建 CloudFormation 堆栈时应收到的 Amazon SNS 邮件 在 AWS CloudFormation 控制台中,找到您刚刚创建的堆栈 在堆栈的输出选项卡上,查找与 AssetBucketName 相关的值。如果您不再需要录音或转录文件,可以单独删除该存储桶。通过使用亚马逊 Bedrock 和亚马逊 Transcribe 的生成式 AI 功能,您的组织可以在保持隐私和合规性的同时创建音频记录的简洁摘要。