

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

# 使用 Amazon Lex V2 创建机器人的不同方法
<a name="create-bot"></a>

您可以通过以下方式使用 Amazon Lex V2 创建机器人：

1. 使用 Amazon Lex V2 控制台通过网站界面创建机器人。有关更多信息，请参阅 [使用 Amazon Lex V2 控制台创建机器人](create-bot-console.md)。

1. 使用描述性机器人生成器利用 Amazon Bedrock 的生成式人工智能功能创建机器人。有关更多信息，请参阅 [使用一条描述在 Lex V2 中通过描述性机器人生成器构建机器人](nld-bots.md)。

1. 使用机器人模板创建与常见业务用例相匹配的预配置机器人。有关更多信息，请参阅 [使用模板创建 Amazon Lex V2 机器人](bot-templates.md)。

1. 使用 A [WS 开发工具包](https://aws.amazon.com/tools/#sdk)通过 API 操作创建机器人。

1. 使用自动聊天机器人设计器，通过代理与客户之间的现有聊天转录来创建机器人。有关更多信息，请参阅 [使用自动化聊天机器人设计程序创建 Amazon Lex V2 机器人](designing.md)。

1. 导入现有的机器人定义。有关更多信息，请参阅 [在 Lex V2 中导入机器人](import.md)。

1. CloudFormation用于创建机器人。有关更多信息，请参阅 [使用创建 Amazon Lex V2 资源 AWS CloudFormation](creating-resources-with-cloudformation.md)。

**Topics**
+ [

# 使用 Amazon Lex V2 控制台创建机器人
](create-bot-console.md)
+ [

# 使用模板创建 Amazon Lex V2 机器人
](bot-templates.md)
+ [

# 使用自动化聊天机器人设计程序创建 Amazon Lex V2 机器人
](designing.md)

# 使用 Amazon Lex V2 控制台创建机器人
<a name="create-bot-console"></a>

您可以创建 Amazon Lex V2 机器人来与用户交互，从而引发完成任务所需的信息。例如，您可以创建一个机器人来收集订购鲜花或预订酒店房间所需的信息。要使用 AWS 控制台创建机器人，请先定义名称、描述和一些基本信息。

1. 登录 AWS 管理控制台并打开位于的 Amazon Lex 控制台[https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/)。

1. 选择**创建自动程序**。

1. 在**创建方法**部分，选择**传统**，然后选择**创建空白机器人**。

1. 在**机器人配置**部分，为机器人指定名称和（可选）描述。

1. 在 **IAM 权限**部分，选择一个 AWS 身份和访问管理 (IAM) 角色，该角色为 Amazon Lex V2 提供访问其他 AWS 服务（例如亚马逊 CloudWatch）的权限。您可以让 Amazon Lex V2 创建角色，也可以选择具有 CloudWatch 权限的现有角色。

1. 在**儿童在线隐私保护法（COPPA）**部分，选择相应的回应。

1. 在**空闲会话超时**部分，选择 Amazon Lex V2 保持用户会话打开的持续时间。Amazon Lex V2 会在会话期间保留会话变量，以便您的机器人可以使用相同的变量恢复对话。

1. 在**高级设置**（可选）部分，添加标签以便帮助识别机器人，控制访问和监控资源。

1. 选择**下一步**创建机器人，然后进入添加语言的过程。

# 使用模板创建 Amazon Lex V2 机器人
<a name="bot-templates"></a>

Amazon Lex V2 提供预构建的解决方案以便实现大规模的用户体验，并鼓励用户参与数字互动。这些预构建的机器人模板可实现客户体验的自动化和标准化。机器人模板为语音和聊天模式提供 ready-to-use对话流程以及训练数据和对话提示。您可以在优化资源的同时加快机器人解决方案的交付，从而专注于客户关系的开发。

您可以根据自己的业务用例创建预构建的机器人。您可以使用CloudFormation控制台为相关服务（例如 Amazon S3、Amazon Connect 和 DynamoDB）选择预先构建的选项。

目前，Amazon Lex V2 支持以下垂直行业：
+ 金融服务
+ 零售订购
+ 汽车保险
+ 电信
+ 航空服务
+ 将来还会提供其他模板。

您可以使用所提供的业务解决方案模板来构建机器人，并根据您的业务需求来对机器人进行自定义。

**注意**  
这些模板通过 CloudFormation 堆栈创建 Amazon Lex V2 之外的资源。可能需要在其他控制台（例如 Lambda 和 DynamoDB）中修改该堆栈。

**构建和部署机器人模板的先决条件：**
+ 一个 Amazon Web Services account 
+ 访问以下 AWS 服务：
  + Amazon Lex V2，用于创建机器人
  + Lambda，用于企业登录功能
  + DynamoDB，用于创建表格
  + IAM 访问权限，用于创建策略和角色
  + AWS CloudFormation 来运行堆栈
+ IAM 访问权限和私有密钥凭证
+ Amazon Connect 实例（可选）

**注意**  
使用不同的 AWS 服务会产生每项服务的相应使用成本。

**要使用 Amazon Lex V2 模板构建机器人，请执行以下操作：**

1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Lex 控制台[https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/)。

1. 在左侧导航窗格中，选择**机器人模板**。

1. 选择要用于机器人模板的垂直行业。注意：目前有 5 个机器人模板可用。即将推出更多可用模板。

1. 对您要使用的模板选择**创建**。将打开一个选项卡，您可以在CloudFormation其中编辑CloudFormation堆栈的参数。您所选模板的所有选项都已完成。您还可以通过选择**了解详情**来详细了解机器人模板的工作原理。

1. 在CloudFormation控制台中，CloudFormation为您所选模板的每个值创建默认配置。您还可以选择自己的堆栈名称、CloudFormation参数、亚马逊 DynamoDB 表和（可选）Amazon Connect 参数。

1. 在窗口底部，选择**创建堆栈**。

1. CloudFormation在后台处理请求几分钟，以配置您的新机器人。注意：该过程会自动为 DynamoDB 表、Amazon Connect 联系流程和 Amazon Connect 实例创建资源。您可以在CloudFormation控制台中跟踪进度，然后在 CloudFormation 堆栈创建完成后返回到 Amazon Lex V2 控制台。

1. 如果成功构建，则会显示一条消息。您可以选择**前往机器人列表**以进入**机器人**页面，从而在该页面中找到可以测试和使用的新机器人。

**配置机器人模板**

**Lambda 函数**：机器人模板会自动为您的部署创建所需的 Lambda 函数。如果模板解决方案中包含多个机器人，则 CloudFormation 参数中会列出多个 Lambda 函数。如果您要与机器人一起部署现有 Lambda 函数，则可以输入自定义 Lambda 函数的名称。

**Amazon DynamoDB**：机器人模板会自动创建加载示例策略数据所需的 DynamoDB 表。您也可以输入您的自定义 DynamoDB 表的名称。您的自定义 DynamoDB 表的格式应与机器人模板部署创建的默认表相同。

**Amazon Connec** t — 您可以通过输入 ConnectInstance ARN 和唯一值来配置您的 Amazon Connect 实例，使其与新的机器人模板配合使用。 ContactFlowName使用 Amazon Connect，您可以使用来自 end-to-end的 IVR 系统测试您的机器人。

**对机器人模板进行故障排除**
+ 检查您是否拥有创建所选模板的对应权限。用户需要 CloudFormation：CreateStack 权限以及模板中列出的 AWS 资源的权限。需要用户权限的资源列表位于**创建模板**页面的底部。
+ 如果您的机器人模板创建失败，Amazon Lex V2 控制台中的红色横幅会提供指向负责创建该模板的CloudFormation堆栈的链接。在CloudFormation控制台中，您可以查看 “事件” 选项卡，查看导致模板失败的特定错误。查看CloudFormation错误后，请参阅[疑难解答 CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)以了解更多信息。
+ 机器人模板仅适用于示例数据。您必须将数据填入 DynamoDB 表中，以便模板使用您的自定义数据。

# 使用自动化聊天机器人设计程序创建 Amazon Lex V2 机器人
<a name="designing"></a>

自动聊天机器人设计器可帮助您根据现有对话转录来设计机器人。该自动聊天机器人设计器对转录进行分析，并提出包含意图和槽位类型的初始设计。您可以迭代机器人设计，添加提示，以及构建、测试和部署机器人。

使用 Amazon Lex V2 控制台或 API 创建新机器人或向机器人添加语言后，您可以上传双方对话的转录。自动聊天机器人设计器将对转录进行分析，并确定机器人的意图和槽位类型。该设计器还会对影响特定意图或槽位类型的创建的对话进行标记以供您审阅。

您可以使用 Amazon Lex V2 控制台或 API 来分析对话转录，并就机器人的意图和槽位类型提出相关建议。

**注意**  
您只能使用英语（美国）的转录。

聊天机器人设计器完成分析后，您可以查看建议的意图和槽位类型。添加建议的意图或槽位类型后，您可以使用控制台或 API 对其进行修改或将其从机器人设计中删除。

自动聊天机器人设计器支持使用 Contact Lens for Amazon Connect 架构的对话转录文件。如果您使用的是其他联络中心应用程序，则必须将对话转录转换为聊天机器人设计器使用的格式。有关信息，请参阅[输入转录格式](designing-input-format.md)。

要使用自动聊天机器人设计器，您必须向运行该设计器的 IAM 角色授予相关访问权限。有关具体的 IAM 策略，请参阅[允许用户使用自动聊天机器人设计器](security_iam_id-based-policy-examples.md#security_iam-bot-designer)。要使 Amazon Lex V2 能够使用可选 AWS KMS 密钥对输出数据进行加密，您需要使用中所[允许用户使用密 AWS KMS 钥加密和解密文件](security_iam_id-based-policy-examples.md#security_iam-bot-key)示的策略更新密钥。

**注意**  
如果您使用 KMS key，则无论使用什么 IAM 角色，都必须提供**KMS key 策略**。

**Topics**
+ [

# 导入对话转录
](designing-import.md)
+ [

# 创建意图和槽位类型
](designing-create.md)
+ [

# 输入转录格式
](designing-input-format.md)
+ [

# 输出转录格式
](designing-output-format.md)

# 导入对话转录
<a name="designing-import"></a>

导入对话转录的过程包括三个步骤：

1. 将转录转换为正确的格式，为导入做好准备。如果您使用的是 Contact Lens for Amazon Connect，则转录已经是正确的格式。

1. 将转录上传到 Amazon S3 存储桶。如果您使用的是 Contact Lens，则您的转录已在 S3 存储桶中。

1. 使用 Amazon Lex V2 控制台或 API 操作对转录进行分析。完成训练所需要的时间取决于转录的数量以及对话的复杂性。通常，每分钟分析 500 行转录。

其中的各个步骤将在后文中予以说明。

## 从 Contact Lens for Amazon Connect 导入转录
<a name="import-connect"></a>

Amazon Lex V2 自动聊天机器人设计器与 Contact Lens 转录文件兼容。要使用 Contact Lens 转录文件，必须打开 Contact Lens 并记下其输出文件的位置。

**从 Contact Lens 导出转录**

1. 在您的 Amazon Connect 实例中打开 Contact Lens。有关说明，请参阅《Amazon Connect 管理员指南》**中的[启用 Contact Lens for Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/enable-analytics.html)。

1. 记下 Amazon Connect 用于您的实例的 S3 存储桶的位置。要查看位置，请在 Amazon Connect 控制台中打开**数据存储**页面。有关说明，请参阅《Amazon Connect 管理员指南》**中的[更新实例设置](https://docs.aws.amazon.com/connect/latest/adminguide/update-instance-settings.html)。

打开 Contact Lens 并记下转录文件位置后，请访问[使用 Amazon Lex V2 控制台分析转录](#import-import)以查看转录导入和分析的说明。

## 准备转录
<a name="import-prepare"></a>

创建转录文件，以准备好您的转录。
+ 为每个对话创建一个转录文件，以便列出各方之间的交互。对话中的每次交互可能有多行内容。您可以提供对话的已编辑版本和未编辑版本。
+ 文件必须为[输入转录格式](designing-input-format.md)中指定的 JSON 格式。
+ 您必须提供至少 1,000 个对话回合。为了更好地发现您的意图和槽位类型，您应该提供约 10,000 个或更多个对话回合。自动聊天机器人设计器仅处理前 700,000 个回合。
+ 您可以上传的转录文件没有数量限制，也没有文件大小限制。

如果您计划按日期筛选已导入的转录，则这些文件必须位于以下目录结构中：

```
<path or bucket root>
   --> yyyy
      --> mm
         --> dd
            --> transcript files
```

 脚本文件的文件名中必须包含 “yyyy-mm-dd” 格式的日期。

**从其他联络中心应用程序导出转录**

1. 使用联络中心应用程序的工具导出对话。对话必须至少包含[输入转录格式](designing-input-format.md)中指定的信息。

1. 将您的联络中心应用程序生成的转录转换为[输入转录格式](designing-input-format.md)中所述的格式。该转换应由您负责执行。

我们提供三个用于准备转录的脚本。它们是：
+ 将 Contact Lens 转录与 Amazon Lex V2 对话日志结合起来的脚本。Contact Lens 转录不包括与 Amazon Lex V2 机器人交互的 Amazon Connect 对话部分。该脚本要求为 Amazon Lex V2 开启对话日志，以及查询对话日志 CloudWatch 日志和 Contact Lens S3 存储桶的相应权限。
+ 用于将 Amazon Transcribe 通话分析功能转换为 Amazon Lex V2 输入格式的脚本。
+ 用于将 Amazon Connect 聊天转录转换为 Amazon Lex V2 输入格式的脚本。

你可以从这个 GitHub 存储库下载脚本：[ https://github.com/aws-samples/amazon-lex-bot-recommendation-integration。](https://github.com/aws-samples/amazon-lex-bot-recommendation-integration)

## 将转录上传到 S3 存储桶
<a name="import-upload"></a>

如果您使用的是 Contact Lens，则您的转录文件已包含在 S3 存储桶中。有关转录文件的位置和文件名，请参阅《Amazon Connect 管理员指南》**中的[示例 Contact Lens 输出文件](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-example-output-files.html)。

如果您正在使用其他联络中心应用程序，但尚未为转录文件设置 S3 存储桶，请按照以下步骤操作。否则，如果您已有 S3 存储桶，则在登录 Amazon S3 控制台后，请从此过程的第 5 步开始执行。

**将文件上传到 S3 存储桶**

1. 登录 AWS 管理控制台并在上打开 Amazon S3 控制台[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择 **创建存储桶 **。

1. 指定存储桶的名称，然后选择“区域”。该区域必须与您在 Amazon Lex V2 中使用的区域相同。根据需要针对您的用例设置其他选项。

1. 选择 **创建存储桶 **。

1. 在存储桶列表中，选择现有存储桶或者您刚创建的存储桶。

1. 选择**上传**。

1. 添加您要上传的转录文件。

1. 选择**上传**。

## 使用 Amazon Lex V2 控制台分析转录
<a name="import-import"></a>

您只能使用空语言的自动机器人设计。可以将新语言添加到现有机器人，也可以创建新机器人。

**要在新机器人中创建新语言，请执行以下操作：**

1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Lex 控制台[https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/)。

1. 选择**创建机器人**。

1. 选择**从自动聊天机器人设计器开始**。填写信息以创建机器人。

1. 选择**下一步**。

1. 在**为机器人添加语言**中，填写语言信息。

1. 在 **S3 上的转录文件位置**部分中，选择包含您的转录文件的 S3 存储桶，以及文件的本地路径（如有必要）。

1. 可选的选项如下：
   + 在处理过程中对笔录数据进行加密的密 AWS KMS 钥。如果不选择密钥，则使用服务 AWS KMS 密钥。
   + 按照特定的日期范围对转录进行筛选。如果您选择对转录进行筛选，则转录文件必须位于正确的文件夹结构中。有关更多信息，请参阅 [准备转录](#import-prepare)。

1. 选择**完成**。

等待 Amazon Lex V2 处理转录。分析完成后，系统将显示一条完成消息。

**如何停止分析转录**

如果您需要停止对已上传转录的分析，则可以停止 `BotRecommendationStatus` 状态为“正在处理”的正在运行的 `BotRecommendation` 任务。从控制台提交任务后，或者使用适用于 `StopBotRecommendation` API 的 CLI SDK，您可以点击横幅上显示的**停止处理**按钮。有关更多信息，请参阅 [StopBotRecommendation](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StopBotRecommendation.html)。

调用 `StopBotRecommendation` 后，内部 `BotRecommendationStatus` 被设置为 `Stopping`，您无需支付任何费用。要确保任务已停止，您可以调用 `DescribeBotRecommendation` API 并验证 `BotRecommendationStatus` 是否为 `Stopped`。此过程通常需要 3 到 4 分钟。

调用 `StopBotRecommendation` API 后，您无需支付处理费用。

# 创建意图和槽位类型
<a name="designing-create"></a>

聊天机器人设计器创建意图和槽位类型后，您可以选择要添加到机器人中的意图和槽位类型。您可以查看每种意图和槽位类型的详细信息，以帮助您确定哪些建议与您的用例最相关。

您可以点击推荐意图的名称以查看聊天机器人设计器建议的示例言语和槽位。如果您选择**显示相关转录**，则还可以滚动浏览您提供的对话。这些转录会影响聊天机器人设计器对这一意图的推荐。如果点击某个示例言语，则可以查看影响该特定言语的主对话和相关的对话框回合。

您可以点击特定槽位类型的名称来查看推荐的槽位值。如果选择**显示相关转录**，则可以查看影响此槽位类型的对话，突出显示对该槽位类型引发的代理提示。如果点击某个特定的槽位类型值，则可以查看影响该值的主对话和相关的对话框回合。

**要查看和添加意图和槽位类型，请执行以下操作：**

1. 登录 AWS 管理控制台并通过以下网址打开 Amazon Lex 控制台[https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/)。

1. 从机器人列表中，选择您要使用的机器人。

1. 选择**查看语言**。

1. 从语言列表中，选择要使用的语言。

1. 在**对话结构**中，选择**审核**。

1. 在意图和槽位类型列表中，选择要添加到机器人的意图和槽位类型。您可以选择意图或槽位类型来查看详细信息和相关转录。

意图按照 Amazon Lex V2 对意图与已处理转录关联的置信度进行排序。

# 输入转录格式
<a name="designing-input-format"></a>

以下列出了为机器人生成意图和槽位类型的输入文件格式。输入文件必须包含以下字段。其他字段将被忽略。

输入格式与 Contact Lens for Amazon Connect 的输出格式兼容。如果您正在使用 Contact Lens，则无需修改转录文件。有关更多信息，请参阅[示例 Contact Lens 输出文件](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-example-output-files.html)。如果您使用的是其他联络中心应用程序，则必须将您的转录文件转换为此格式。

```
{
    "Participants": [
        {
            "ParticipantId": "string",
            "ParticipantRole": "AGENT | CUSTOMER"
        }
    ],
    "Version": "1.1.0",
    "ContentMetadata": {
        "RedactionTypes": [
            "PII"
        ],
        "Output": "Raw | Redacted"
    },
    "CustomerMetadata": {
        "ContactId": "string"
    },
    "Transcript": [
        {
            "ParticipantId": "string",
            "Id": "string",
            "Content": "string"
        }
    ]
}
```

输入文件中必须存在以下字段：
+ **Participants**：标识对话中的参与者以及这些参与者的角色。
+ **Version**：输入文件格式的版本。该字段的值始终为“1.1.0”。
+ **ContentMetadata**表示您是否从笔录中删除了敏感信息。如果转录包含敏感信息，请将该 `Output` 字段设置为“Raw”。
+ **CustomerMetadata**对话的唯一标识符。
+ **Transcript**：对话中各方之间的对话文本。对话的每一个回合都有一个唯一的标识符。

# 输出转录格式
<a name="designing-output-format"></a>

输出转录格式与输入转录格式几乎完全相同。但是，该格式中还包括客户元数据和字段，以列出影响意图和槽位类型的建议的片段。您可以从控制台的**审核**页面或使用 Amazon Lex V2 API 下载输出转录。有关更多信息，请参阅 [输入转录格式](designing-input-format.md)。

```
{
    "Participants": [
        {
            "ParticipantId": "string",
            "ParticipantRole": "AGENT | CUSTOMER"
        }
    ],
    "Version": "1.1.0",
    "ContentMetadata": {
 
        "RedactionTypes": [
            "PII"
        ],
        "Output": "Raw | Redacted"
    },
    "CustomerMetadata": {
        "ContactId": "string",
        "FileName": "string",
        "InputFormat": "Lex"
    },
    "InfluencingSegments": [
        {
            "Id": "string",
            "StartTurnIndex": number,
            "EndTurnIndex": number,
            "Intents": [
                {
                    "Id": "string",
                    "Name": "string",
                    "SampleUtteranceIndex": [
                        {
                            "Index": number,
                            "Content": "String"
                        }
                    ]
                }
            ],
            "SlotTypes": [
                {
                    "Id": "string",
                    "Name": "string",
                    "SlotValueIndex": [
                        {
                            "Index": number,
                            "Content": "String"
                        }
                    ]
                }
            ]
        }
    ],
    "Transcript": [
        {
 
            "ParticipantId": "string",
            "Id": "string",
            "Content": "string"
        }
    ]
}
```
+ **CustomerMetadata**— 该`CustomerMetadata`字段中添加了两个字段，即包含对话的输入文件的名称和输入格式（始终为 “Lex”）。
+ **InfluencingSegments**— 标识影响意图或时段类型建议的对话片段。意图或槽位类型的 ID 用于标识受对话影响的特定意图或槽位类型。