

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

# 使用自动化聊天机器人设计程序创建 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 用于标识受对话影响的特定意图或槽位类型。