

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

# 步骤 2：入门（控制台）
<a name="gs-console"></a>

## 控制台概述
<a name="console-overview"></a>

学习如何使用 Amazon Lex V2 的最简单方法是使用控制台。选择与您的角色和经验水平最匹配的学习路径：

## 选择你的学习路径
<a name="learning-paths"></a>

选择与您的角色和经验水平最匹配的学习路径：
+ **No-Code Path（企业用户）**— 非常适合想要仅使用控制台界面构建机器人的业务分析师、产品经理和非技术用户。
  + 从以下内容开始：[快速入门：在 5 分钟内创建聊天机器人](quick-start.md)
  + 然后试试：[练习 1：使用模板创建聊天机器人](exercise-1.md)
  + 学习：[入门最佳实践](getting-started-best-practices.md)
+ **开发者路径** — 非常适合想要将 Amazon Lex V2 与应用程序集成 APIs、使用和实现自定义业务逻辑的软件开发人员。
  + 从以下内容开始：[练习 1：使用模板创建聊天机器人](exercise-1.md)
  + 高级：[练习 3：构建高级客户服务聊天机器人](exercise-3.md)
  + 然后探索：[将AWS Lambda功能集成到您的 Amazon Lex V2 机器人中](lambda.md)
  + 评论：[机器人示例](examples.md)
  + 高级：API 集成和 SDK 使用情况
+ **Enterprise Path** — 专为规划具有安全性、合规性和可扩展性要求的大规模部署的架构师和工程师而设计。
  + 从以下内容开始：[练习 1：使用模板创建聊天机器人](exercise-1.md)
  + 企业示例：[练习 3：构建高级客户服务聊天机器人](exercise-3.md)
  + 回顾：安全和 IAM 最佳实践
  + 探索：[使用 Global Resiliency 将机器人部署到其他区域](global-resiliency.md)
  + 计划：监控、记录和成本优化

## 基础练习
<a name="foundational-exercises"></a>

无论您选择哪种途径，我们都建议您从以下基础练习开始：
+ 练习 1 — 使用模板创建 Amazon Lex V2 机器人，模板是一种预定义的机器人，可提供所有必要的机器人配置。您只需做最少的工作即可测试 end-to-end设置。
+ 练习 2：查看您的客户端应用程序和 Amazon Lex V2 机器人之间发送的 JSON 结构。
+ 练习 3 — 构建一个高级客户服务聊天机器人，演示企业级功能，包括订单管理、智能向上销售、潜在客户生成和基于人工智能的功能，以实现个性化客户体验。

**Topics**

# 快速入门：在 5 分钟内创建聊天机器人
<a name="quick-start"></a>

本快速入门指南可帮助您使用预先构建的模板在短短 5 分钟内创建一个正常运行的 Amazon Lex V2 聊天机器人。您将拥有一个功能齐全的聊天机器人，可以根据自己的需求立即对其进行测试和自定义。

## 第 1 步：选择模板
<a name="choose-template"></a>

Amazon Lex V2 为常见用例提供了几个预先构建的模板：
+ C@@ **ustomer Support 常见问题解答** — 处理常见的客户服务查询
+ **预约** —安排和管理预约
+ **订单状态**-查看订单信息和配送状态
+ **IT 服务台** — 提供技术支持和故障排除

**选择模板**

1. 打开 Amazon Lex V2 主机，网址为[https://console.aws.amazon.com/lexv2/](https://console.aws.amazon.com/lexv2/)。

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

1. 选择 “**从模板开始**”。

1. 选择此快速入门的 Cust **omer Support 常见问题解答**模板。

1. 输入机器人名称，例如**MyFirstChatbot**。

1. 选择**创建**。

## 第 2 步：快速自定义（可选）
<a name="customize-template"></a>

该模板已预先配置，但您可以根据自己的特定需求快速对其进行自定义：

**自定义您的聊天机器人**

1. 在机器人概述中，查看预先配置的意图。

1. 选择要修改的意图，例如**GetAccountInfo**。

1. 添加您自己的示例语句，使其与客户对请求的措辞方式相匹配。

1. 更新回复消息以匹配您的品牌声音。

1. 选择**保存意图**。

## 第 3 步：测试你的机器人
<a name="test-bot"></a>

使用内置的测试控制台立即测试您的聊天机器人：

**测试你的聊天机器人**

1. 选择 B **uild** 来编译你的机器人。

1. 等待构建完成（通常为 1-2 分钟）。

1. 在右侧的测试控制台中，键入：**I need help with my account**

1. 按 Enter 并观察机器人的响应。

1. 尝试其他短语来测试机器人的理解能力。

## 步骤 4：部署您的机器人
<a name="deploy-bot"></a>

对聊天机器人的响应感到满意后，请将其部署以供使用：

**部署您的聊天机器人**

1. 从机器人操作菜单中选择 “**发布**”。

1. 通过选择创建版本来**创建新版本**。

1. 创建指向您的版本的别名（例如 “Production”）。

1. 选择您的集成方法。

## 后续步骤
<a name="next-steps-quick"></a>

恭喜您！你现在有一个可以运行的 Amazon Lex V2 聊天机器人了。接下来，您可以执行以下操作：
+ **启用辅助 NLU** — 通过 AI 驱动的自然语言处理功能增进理解。
+ **添加更多意图** — 通过其他用例扩展聊天机器人的功能。
+ **与 Lambda 集成**-添加业务逻辑和外部系统集成。请参阅[将AWS Lambda功能集成到您的 Amazon Lex V2 机器人中](lambda.md)。
+ **设置监控**-跟踪使用情况和性能。请参阅[使用 Amazon 衡量运营指标 CloudWatch](monitoring-cloudwatch.md)。
+ **学习高级功能** — 探索对话流管理、多回合对话和上下文切换。

有关更详细的演练，请继续。[练习 1：使用模板创建聊天机器人](exercise-1.md)

# 练习 1：使用模板创建聊天机器人
<a name="exercise-1"></a>

在本练习中，您将创建自己的第一个 Amazon Lex V2 聊天机器人，然后在 Amazon Lex V2 控制台中对其进行测试。在本练习中，您将使用**OrderFlowers**模板，该模板演示了电子商务的实际用例。

## OrderFlowers 机器人示例
<a name="example-overview"></a>

您可以使用该**OrderFlowers**模板创建可以处理订购鲜花请求的 Amazon Lex V2 聊天机器人。此示例演示了企业如何使用智能聊天机器人自动执行订单。有关机器人结构的更多信息，请参阅 [Amazon Lex V2 核心概念](how-it-works.md)。
+ **意图** — 该机器人包括一个主要意图：
  + `OrderFlowers`-通过收集鲜花种类、领取日期和领取时间来处理订购鲜花的请求
+ **插槽类型** — 机器人使用内置的插槽类型，可以自动识别和处理常见的数据格式：
  + [AMAZON.Date](built-in-slot-date.md)-识别诸如 “明天”、“下周五” 或 “3 月 15 日” 之类的日期
  + [AMAZON.Time](built-in-slot-time.md)-识别诸如 “下午 2 点”、“中午” 或 “三点钟后” 之类的时间
  + `FlowerTypes`（自定义）-特定的花卉品种，例如 “玫瑰”、“郁金香”、“百合”
+ **老虎机** — 在机器人完成鲜花订单之前， OrderFlowers 意图需要以下信息：
  + `FlowerType`（FlowerTypes 自定义类型）-要订购的鲜花类型
  + `PickupDate`（[AMAZON.Date](built-in-slot-date.md)类型）-何时去摘花
  + `PickupTime`（[AMAZON.Time](built-in-slot-time.md)类型）-什么时候去摘花
+ **话语示例 —** 以下示例话语显示了用户请求订购鲜花的自然方式：
  + “我想要选些花”
  + “我想订点花”
  + “我能去拿花吗？”
  + “我需要买花”
+ **提示**：在机器人确定此意图后，它会使用以下提示来填充槽：
  + 用于 `FlowerType` 槽的提示：“您想要订哪种类型的花？”
  + 提示进入时`PickupDate`段 — “你想在哪一天拿起 \$1FlowerType\$1？”
  + 提示输入插`PickupTime`槽 — “你想在什么时候拿起 \$1FlowerType\$1？”
  + 确认声明 — “好的，您的 \$1FlowerType\$1 将在 \$1\$1 上准备好在 \$1PickupTime\$1 上取货。PickupDate这样可以吗？” 

## 创建你的机器人
<a name="create-bot-procedure"></a>

**创建 Amazon Lex V2 机器人（控制台）**

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

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

1. 对于**创建方法**，请选择**从示例开始**。

1. 在 “**示例机器人**” 部分中，**OrderFlowers**从列表中进行选择。

1. 在**机器人配置**部分，为机器人指定名称和（可选）描述。该名称在您的账户中必须是唯一的。

1. 在**权限**部分，选择**使用基本 Amazon Lex 权限创建新角色**。这将创建一个 AWS 身份和访问管理 (IAM) 角色，该角色具有 Amazon Lex V2 运行您的机器人所需的权限。

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

1. 在**会话超时**和**高级设置**部分，保留默认值。

1. 选择**下一步**。Amazon Lex V2 为您创建了机器人。

## 为你的机器人添加语言
<a name="add-language-procedure"></a>

在创建机器人之后，您必须添加机器人支持的一种或多种语言。每种语言包含机器人用来与用户对话的意图、槽位类型和槽位。

**为机器人添加语言**

1. 在**语言**部分，选择支持的语言并添加描述。

1. 保留**语音交互**和**意图分类置信度分数阈值**字段的默认值。

1. 选择**完成**，为向机器人添加语言。

## 测试你的机器人
<a name="test-bot-procedure"></a>

选择**完成**后，控制台将打开意图编辑器。您可以通过意图编辑器来检查机器人使用的意图。完成对机器人的检查后，您可以对其进行测试。

**测试 OrderFlowers 机器人**

1. 在页面顶部，选择**构建**。等待机器人构建。

1. 构建完成后，选择**测试**以打开测试窗口。

1. 测试自动程序。从其中一句言语样本开始对话，例如“我想去摘花。”

## 启用 NLU 以增进理解
<a name="enable-assisted-nlu"></a>

现在你已经有了可以正常工作的聊天机器人，让我们使用辅助的 NLU 对其进行增强，以提高意图识别和时段分辨率。Assisted NLU 使用大型语言模型 (LLMs) 来更好地理解用户请求，即使他们使用的措辞与您的训练示例不同。

**启用辅助 NLU**

1. 在 Amazon Lex V2 控制台中，导航到您的机器人的设置。

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

1. 在 “**辅助 NLU**” 下，选择 “**启用**”。

1. 选择 “**保存**” 以应用更改。

1. 再次构建您的机器人以应用辅助 NLU 增强功能。

**测试改进：在**测试控制台中试试这些变体，看看辅助的 NLU 如何处理不同的措辞：
+ “我想买点玫瑰”（应该会触发 OrderFlowers 意图和捕获 FlowerType）
+ “我明天能送花吗？” （应该触发 OrderFlowers 意图并捕获 PickupDate）
+ “下午 3 点我需要郁金香来取货”（应该会触发 OrderFlowers 意图和捕捉而 FlowerType 且 PickupTime）

请注意，聊天机器人可以理解这些自然变化，而无需您将其添加为明确的示例语句。这由 Assisted NLU 提供支持，它使用 AI 来提高自然语言理解。

## 后续步骤
<a name="getting-started-next-steps"></a>

您已经通过模板创建了第一个机器人。您可以通过控制台创建自己的机器人。有关创建自定义机器人的说明以及创建机器人的更多信息，请参阅 [使用 Amazon Lex V2 机器人](building-bots.md)。

# 练习 2：查看对话流程
<a name="exercise-2"></a>

 在本练习中，您可以查看在您的客户端应用程序和您在 [练习 1：使用模板创建聊天机器人](exercise-1.md) 中创建的 Amazon Lex V2 机器人之间发送的 JSON 结构。对话使用[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html)操作生成 JSON 结构。[RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html)返回的信息与响应中的 HTTP 标头相同。

JSON 结构按对话的每个回合划分。一个*回合*是指来自客户端应用程序的请求和来自机器人的响应。

## 第 1 回合
<a name="exercise-2-turn-1"></a>

在对话的第 1 回合，客户端应用程序会启动与您的机器人的对话。请求 URI 和正文均提供请求相关信息。

```
POST /bots/botId/botAliases/botAliasId/botLocales/localeId/sessions/sessionId/text HTTP/1.1
Content-type: application/json

{
    "text": "I would like to order flowers"
}
```
+ URI 标识正在与客户端应用程序通信的机器人。它还包括由客户端应用程序生成的会话标识符，用于标识用户和机器人之间的特定对话。
+ 请求的正文包含用户在客户端应用程序中键入的文本。在这种情况下，只发送文本，但是您的应用程序可以发送其他信息，例如请求属性或会话状态。有关更多信息，请参阅 [RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) 操作。

根据 `text`，Amazon Lex V2 可以检测到用户订购鲜花的意图。Amazon Lex V2 选择一个意图的槽位（`FlowerType`）和该槽位的一个提示，然后向客户端应用程序发送以下响应。客户端向用户显示响应。

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": null,
                    "PickupDate": null,
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 0.95
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "What type of flowers would you like to order?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "FlowerType",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": null,
                "PickupDate": null,
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## 第 2 回合
<a name="exercise-2-turn-2"></a>

在第 2 回合中，用户响应第 1 回合中 Amazon Lex V2 机器人的提示，为 `FlowerType` 槽位填充一个值。

```
{
    "text": "1 dozen roses"
}
```

第 2 回合的响应显示 `FlowerType` 槽位已填满，并提供提示以引发下一个槽位值。

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": null,
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 0.98
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "What day do you want the dozen roses to be picked up?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "PickupDate",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": null,
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## 第 3 回合
<a name="exercise-2-turn-3"></a>

在第 3 回合中，用户响应第 2 回合中 Amazon Lex V2 机器人的提示，为 `PickupDate` 槽位填充一个值。

```
{
    "text": "next monday"
}
```

第 3 回合的响应显示 `FlowerType` 和 `PickupDate` 槽位都已填满，并提供提示以引发最后一个槽位值。

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2022-12-28",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": null
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "At what time do you want the 1 dozen roses to be picked up?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "slotToElicit": "PickupTime",
            "type": "ElicitSlot"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": null
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f",
        "sessionAttributes": {}
    }
}
```

## 第 4 回合
<a name="exercise-2-turn-4"></a>

在第 4 回合中，用户提供意图的最终槽位值，即提取鲜花的时间。

```
{
    "text": "5 in the evening"
}
```

在响应中，Amazon Lex V2 向用户发送确认提示以确认订单是否正确。设置 `dialogAction` 为 `ConfirmIntent`，`confirmationState` 为 `None`。

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "None",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2021-01-04",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": {
                        "value": {
                            "interpretedValue": "17:00",
                            "originalValue": "5 evening",
                            "resolvedValues": [
                                "17:00"
                            ]
                        }
                    }
                },
                "state": "InProgress"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "Okay, your dozen roses will be ready for pickup by 17:00 on 2021-01-04.  Does this sound okay?",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "type": "ConfirmIntent"
        },
        "intent": {
            "confirmationState": "None",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": {
                    "value": {
                        "interpretedValue": "17:00",
                        "originalValue": "5 evening",
                        "resolvedValues": [
                            "17:00"
                        ]
                    }
                }
            },
            "state": "InProgress"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

## 第 5 回合
<a name="exercise-2-turn-5"></a>

在最后一回合中，用户响应确认提示。

```
{
    "text": "yes"
}
```

在该响应中，Amazon Lex V2 通过将 `confirmationState` 设置为 `Confirmed` 并将 `dialogAction` 设置为 close 来表示此意图已完成。所有槽位值均可供客户端应用程序使用。

```
{
    "interpretations": [
        {
            "intent": {
                "confirmationState": "Confirmed",
                "name": "OrderFlowers",
                "slots": {
                    "FlowerType": {
                        "value": {
                            "interpretedValue": "dozen roses",
                            "originalValue": "dozen roses",
                            "resolvedValues": []
                        }
                    },
                    "PickupDate": {
                        "value": {
                            "interpretedValue": "2021-01-04",
                            "originalValue": "next monday",
                            "resolvedValues": [
                                "2021-01-04"
                            ]
                        }
                    },
                    "PickupTime": {
                        "value": {
                            "interpretedValue": "17:00",
                            "originalValue": "5 evening",
                            "resolvedValues": [
                                "17:00"
                            ]
                        }
                    }
                },
                "state": "Fulfilled"
            },
            "nluConfidence": {
                "score": 1.0
            }
        },
        {
            "intent": {
                "name": "FallbackIntent",
                "slots": {}
            }
        }
    ],
    "messages": [
        {
            "content": "Thanks. ",
            "contentType": "PlainText"
        }
    ],
    "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c",
    "sessionState": {
        "dialogAction": {
            "type": "Close"
        },
        "intent": {
            "confirmationState": "Confirmed",
            "name": "OrderFlowers",
            "slots": {
                "FlowerType": {
                    "value": {
                        "interpretedValue": "dozen roses",
                        "originalValue": "dozen roses",
                        "resolvedValues": []
                    }
                },
                "PickupDate": {
                    "value": {
                        "interpretedValue": "2021-01-04",
                        "originalValue": "next monday",
                        "resolvedValues": [
                            "2021-01-04"
                        ]
                    }
                },
                "PickupTime": {
                    "value": {
                        "interpretedValue": "17:00",
                        "originalValue": "5 evening",
                        "resolvedValues": [
                            "17:00"
                        ]
                    }
                }
            },
            "state": "Fulfilled"
        },
        "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f"
    }
}
```

# 练习 3：构建高级客户服务聊天机器人
<a name="exercise-3"></a>

在这个高级练习中，你将为一家电子商务公司构建一个复杂的客户服务聊天机器人。该机器人演示了企业级功能，包括订单管理、智能追加销售、潜在客户生成和收入优化。聊天机器人使用人工智能驱动的功能来提供个性化的客户体验并推动业务增长。

## SmartCommerce 客户服务机器人概述
<a name="exercise-3-overview"></a>

**SmartCommerce 客户服务机器人**旨在处理复杂的客户互动，同时最大限度地提高收入机会。此示例演示了企业如何通过智能对话管理实现客户服务的自动化，同时推动销售增长。
+ **自定义意图** — 该机器人包含多个自定义意图，可提供全面的客户服务：
  + `CheckOrderStatus`-验证并提供订单状态信息
  + `ProcessReturn`-处理退货申请和换货
  + `UpsellProducts`-推荐其他产品和服务
  + `CaptureLeadInfo`-收集客户信息以开发潜在客户
  + `ScheduleCallback`-图书客户服务回传
+ **内置意图** — 利用 Amazon Lex V2 的内置意图进行常见交互：
  + [AMAZON.HelpIntent](built-in-intent-help.md)-提供帮助和指导
  + [AMAZON.CancelIntent](built-in-intent-cancel.md)-处理取消请求
  + [AMAZON.StopIntent](built-in-intent-stop.md)-优雅地结束对话
+ **自定义插槽类型** — 用于业务特定数据的专用插槽类型：
  + `ProductCategories`-电子产品、服装、家居、图书、体育
  + `ReturnReasons`-有缺陷、尺寸错误、改变主意、与描述不符
  + `ContactPreferences`-电子邮件、短信、电话、应用程序内通知
  + `CustomerTiers`-铜牌、银牌、金牌、铂金
+ **内置插槽类型** — 使用 Amazon Lex V2 内置插槽来处理常见的数据格式：
  + [AMAZON.Date](built-in-slot-date.md)-用于配送日期和回电安排
  + [AMAZON.Time](built-in-slot-time.md)-有关回拨时间和配送时段
  + [AMAZON.EmailAddress](built-in-slot-email.md)-用于收集客户电子邮件
  + [AMAZON.PhoneNumber](built-in-slot-phone.md)-用于客户电话号码
  + [AMAZON.Number](built-in-slot-number.md)-有关订单号和数量

## 详细的意图配置
<a name="exercise-3-intents-detail"></a>

### CheckOrderStatus 意图
<a name="check-order-status-intent"></a>

此意图处理订单验证和状态查询，为客户提供实时订单信息，同时识别追加销售机会。
+ **所需插槽：**
  + `OrderNumber`([AMAZON.Number](built-in-slot-number.md))-客户的订单号
  + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md))-电子邮件进行验证
+ **话语示例：**
  + “我的订单状态如何 \$1OrderNumber\$1”
  + “我需要查看订单号 \$1OrderNumber\$1”
  + “我的包裹在哪里”
  + “追踪我的订单 \$1OrderNumber\$1”
  + “我的订单发货了吗”
+ **人工智能驱动的功能：**
  + 使用 Assisted NLU 来理解 “我的包裹”、“我的东西”、“我的配送” 等变体
  + 自动从自然语音模式中提取订单号

### UpsellProducts 意图
<a name="upsell-products-intent"></a>

这种意图通过根据客户历史和当前的互动环境推荐补充产品和优质服务，主动发现收入机会。
+ **所需插槽：**
  + `ProductCategory`(ProductCategories)-感兴趣的类别
  + `CustomerTier`(CustomerTiers)-客户忠诚度等级
  + `Budget`([AMAZON.Number](built-in-slot-number.md))-客户的预算范围
+ **话语示例：**
  + “给我看相关产品”
  + “这还能带来什么”
  + “你有什么优惠吗”
  + “我对 \$1ProductCategory\$1 件商品感兴趣”
  + “今天有哪些在售”
+ **收入优化功能：**
  + 基于客户等级的动态定价
  + 使用购买历史记录进行个性化推荐
  + 创建限时优惠以推动即时购买

### CaptureLeadInfo 意图
<a name="capture-lead-info-intent"></a>

这种意图系统地收集客户信息以生成潜在客户，从而创建有价值的数据，这些数据可以出售给聚合商或用于有针对性的营销活动。
+ **所需插槽：**
  + `CustomerFirstName`([AMAZON.FirstName](built-in-slot-first-name.md))-客户的个性化名字
  + `CustomerLastName`([AMAZON.LastName](built-in-slot-last-name.md))-用于查询销售历史记录的客户姓氏
  + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md))-电子邮件地址
  + `CustomerPhone`([AMAZON.PhoneNumber](built-in-slot-phone.md))-电话号码
  + `InterestCategory`(ProductCategories)-产品兴趣
  + `ContactPreference`(ContactPreferences)-首选联系方式
+ **话语示例：**
  + “我想听听新产品”
  + “注册我以获取最新消息”
  + “我对 \$1InterestCategory\$1 感兴趣”
  + “随时向我通报销售情况”
  + “我想加入你的邮件列表”
  + “我叫 \$1CustomerFirstName\$1 \$1CustomerLastName\$1”
  + “我是 \$1CustomerFirstName\$1 \$1CustomerLastName\$1，我想要个性化推荐”
+ **潜在客户生成功能：**
  + 用于 CRM 集成的结构化数据收集
  + 基于互动质量的潜在客户评分
  + 自动销售线索资格和路由
  + 聚合器销售的数据格式
+ **销售历史记录集成：**
  + 在 S3 存储的购买历史记录表中查找客户名称
  + 购买模式分析以获得个性化推荐
  + 跨品类购买行为识别
  + 针对定向报价的季节性购买趋势分析
  + 基于等级定价的客户生命周期价值计算

## 多回合对话流程
<a name="exercise-3-multiturn-flow"></a>

该 SmartCommerce 机器人旨在处理跨越多种意图的复杂多回合对话，并在整个互动过程中保持上下文。这创造了一种自然的、人性化的体验，同时最大限度地提高了收入机会。

### 对话流程示例
<a name="conversation-flow-example"></a>

**回合 1-3：检查订单状态**

```
Customer: "Hi, I need to check on my order"
Bot: "I'd be happy to help you check your order status. Can you provide your order number?"
Customer: "It's order 12345"
Bot: "Thank you. To verify your identity, can you provide the email address associated with this order?"
Customer: "john.doe@email.com"
Bot: "Perfect! Order #12345 is currently being prepared for shipment. You should receive it by tomorrow. 
     Since you're a Gold tier customer, would you like to hear about some exclusive deals on related items?"
```

**回合 4-6：追加销售机会**

```
Customer: "Sure, what do you have?"
Bot: "Based on your Electronics purchase, I can offer you a 20% discount on premium accessories. 
     What's your budget range for additional items?"
Customer: "Maybe around $50"
Bot: "Excellent! I have a wireless charging pad normally $60, now $48 with your Gold discount. 
     Plus, if you add it to your current order, shipping is free. Should I add this to your cart?"
```

**回合 7-11：使用销售历史记录查询生成潜在客户**

```
Customer: "Not right now, but I'd like to hear about future deals"
Bot: "Absolutely! I can set you up to receive personalized offers. What's your first name?"
Customer: "John"
Bot: "Thanks John! And your last name so I can look up your purchase history for better recommendations?"
Customer: "Smith"
Bot: "Perfect! Let me check your purchase history... I see you've bought electronics and home items before. 
     Based on your past purchases, I can offer you exclusive deals on smart home accessories. 
     How would you prefer to be contacted?"
Customer: "Email is fine"
Bot: "Great! I'll make sure john.doe@email.com gets personalized deals based on your purchase history. 
     You're all set for our premium recommendations program!"
```

### 上下文管理功能
<a name="context-management"></a>
+ **会话保持：**跨多个意图维护客户信息
+ **意图链接：**在订单检查、追加销售和潜在客户捕获之间无缝过渡
+ **动态个性化：**根据客户等级和购买历史记录调整优惠
+ **收入跟踪：**监控追加销售成功率和潜在客户质量得分

## 人工智能驱动的功能
<a name="exercise-3-ai-features"></a>

该聊天机器人利用多种人工智能功能来提供智能、个性化的客户服务，同时推动业务增长。

### 协助实施NLU
<a name="assisted-nlu-implementation"></a>

Assisted NLU 使用大型语言模型来了解客户的意图，即使他们使用非标准措辞或将多个请求组合成一句话。
+ **自然语言理解：**
  + “我的东西还没到” → CheckOrderStatus 意图
  + “我想退回这个垃圾” → ProcessReturn 意图
  + “让我看看你还有什么” → UpsellProducts 意图
+ **多意图识别：**
  + “查看我的订单 12345 然后注册我以获得优惠” → \$1 CheckOrderStatus CaptureLeadInfo

### 生成插槽分辨率
<a name="generative-slot-resolution"></a>

使用 AI 从复杂的自然语言输入中提取槽值，无需与训练数据精确匹配。
+ **智能提取：**
  + “我上周买了一些电子产品，订单号大概是 12345” → OrderNumber: 12345，: 电子产品 ProductCategory
  + “拨打 555-123-4567 给我打电话或者发送电子邮件至 john@company.com” → 电话：555-123-4567，电子邮件：john@company.com

### 情感分析集成
<a name="sentiment-analysis"></a>

在整个对话过程中监控客户情绪，以调整方法并在必要时上报。
+ **基于情感的路由：**
  + 积极情绪 → 积极的追加销售方法
  + 中立情绪 → 标准服务，温和的追加销售
  + 负面情绪 → 专注于问题解决，尽量减少追加销售

## 订单验证和确认系统
<a name="exercise-3-confirmation-system"></a>

该机器人包括一个全面的确认系统，可以验证客户身份、确认订单详情并通过多个渠道发送确认。

### 多因素验证流程
<a name="verification-process"></a>
+ **主要验证：**
  + 订单号验证
  + 电子邮件地址确认
  + 付款方式的最后 4 位数（用于敏感操作）
+ **二次验证：**
  + 收货地址确认
  + 购买日期验证
  + 产品详情验证

### 多渠道确认系统
<a name="confirmation-channels"></a>

该机器人会根据客户的偏好和操作类型自动通过多个渠道发送确认。
+ **电子邮件确认：**
  + 使用追踪信息更新订单状态
  + 使用预付费发货标签进行退货授权
  + 追加销售购买确认以及配送详情
  + 确认潜在客户捕获并提供欢迎优惠
+ **短信确认：**
  + 即时更新订单状态
  + 带有时间窗的配送通知
  + 为感兴趣的客户提供闪购提醒
+ **应用程序内通知：**
  + 实时订单更新
  + 个性化产品推荐
  + 忠诚度计划更新

## 销售点 (POS) 集成
<a name="exercise-3-pos-integration"></a>

聊天机器人直接与 POS 系统集成，可实时处理交易、应用折扣和更新库存。

### 实时交易处理
<a name="transaction-processing"></a>
+ **追加销售交易流程：**

  ```
  1. Customer accepts upsell offer
  2. Bot validates inventory availability
  3. Bot applies customer-tier discount
  4. Bot processes payment using stored payment method
  5. Bot updates order with additional items
  6. Bot sends confirmation via preferred channel
  7. Bot updates customer profile with purchase data
  ```
+ **收入跟踪：**
  + 按客户等级划分的追加销售转化率
  + 每次互动的平均订单价值增加
  + 聊天机器人互动的收入归因
  + 对客户生命周期价值的影响

### 动态定价引擎
<a name="dynamic-pricing"></a>
+ **基于等级的定价：**
  + 铜奖：标准定价
  + 白银：追加销售可享受5％的折扣
  + 黄金：追加销售可享受10-20％的折扣
  + 白金卡：25% 折扣 \$1 免费送货
+ **情境定价：**
  + 问题解决方案：额外折扣（discount）以保持满意度
  + 高价值客户：专属定价等级
  + 清库存：对流动缓慢的物品给予积极的折扣

## 先进的潜在客户生成系统
<a name="exercise-3-lead-generation"></a>

聊天机器人包括一个复杂的潜在客户生成系统，该系统可通过多种收入来源捕获、鉴定客户数据并从中获利。

### 多点触控潜在客户捕获策略
<a name="lead-capture-strategy"></a>
+ **机会主义捕获：**
  + 在检查订单状态时：“您想了解类似产品的最新信息吗？”
  + 问题解决后：“我们能否通知您有关产品改进的信息？”
  + 在追加销售互动中：“我们是否应该提醒您注意该类别的未来交易？”
+ **增值获取：**
  + 会员专属定价访问权限
  + 抢先体验新产品发布会
  + 个性化产品推荐
  + 生日和周年纪念特别优惠

### 自动潜在客户认证
<a name="lead-qualification"></a>
+ **评分标准：**
  + 购买历史价值：0-25 点积分
  + 参与度等级：0-20 点积分
  + 联系信息完整性：0-15 分
  + 产品类别兴趣广度：0-15 分
  + 对追加销售尝试的回应：0-25 分
+ **潜在客户类别：**
  + 热门潜在客户（80-100 积分）：立即联系销售团队
  + Warm Leads（60-79 分）：自动培育序列
  + Cold Leads（40-59 分）：每月时事通讯
  + 潜在客户（0-39 分）：季度促销电子邮件

### 聚合商的潜在客户数据获利
<a name="aggregator-sales"></a>

该系统对销售线索数据进行格式化和打包，以出售给第三方聚合商，从而创造额外的收入来源。
+ **数据包：**
  + *Premium Package：*完整的联系信息、购买记录、偏好、参与度分数
  + *Standard Package：*联系信息、基本偏好、类别兴趣
  + B@@ *asic Package：*电子邮件地址，主要兴趣类别
+ **合规性功能：**
  + 通过明确的同意追踪来遵守 GDPR
  + 遵守选择退出机制的 CCPA
  + 电子邮件营销的反垃圾邮件合规性
  + 数据保留和删除政策
+ **收入优化：**
  + 基于潜在客户质量分数的动态定价
  + 与优质聚合商的独家数据合作伙伴关系
  + 对高价值潜在客户进行实时出价

## 收入优化策略
<a name="exercise-3-revenue-optimization"></a>

每次互动都旨在通过智能的向上销售、交叉销售和客户生命周期价值优化来最大限度地提高收入。

### 智能追加销售策略
<a name="upselling-strategies"></a>
+ **情境式追加销售：**
  + 查看订单状态 → “您的订单已准备就绪！只需 5 美元即可添加加急配送？”
  + 退货申请 → “你不想退货，而是换成我们升级后的型号吗？”
  + 产品查询 → “此商品与 [补充产品] 完美搭配——捆绑即可节省 15%”
+ **基于紧急情况的销售：**
  + “此优惠将在 24 小时后过期”
  + “按这个价格计算，库存只剩 3 个”
  + “闪购在午夜结束”

### 交叉销售机会
<a name="cross-selling-opportunities"></a>
+ **产品生态系统销售：**
  + 电子产品 → 配件、保修、安装服务
  + 服装 → 配套物品、护理产品、造型服务
  + 家居用品 → 配套用品、保养用品、设计咨询
+ **服务追加销售：**
  + 延长保修期和保护计划
  + 高级客户支持等级
  + 订阅服务和自动配送
  + 专业安装和设置

### 客户生命周期价值优化
<a name="lifetime-value-optimization"></a>
+ **忠诚度计划集成：**
  + 根据聊天机器人互动自动升级等级
  + 参与追加销售优惠可获得奖励积分
  + 仅限聊天机器人的独家奖励和折扣
+ **留存策略：**
  + 主动解决问题以防止客户流失
  + 为不活跃的客户提供个性化的赢回优惠
  + 周年纪念和里程碑庆典优惠

## 实施程序
<a name="exercise-3-implementation"></a>

按照以下 step-by-step步骤构建具有所有收入优化功能的高级客户服务聊天机器人。

### 先决条件和设置要求
<a name="exercise-3-prerequisites"></a>

在构建 SmartCommerce 机器人之前，请确保您拥有必要的 AWS 账户设置和权限，并了解服务注意事项。

#### AWS 账户和访问要求
<a name="aws-account-setup"></a>
+ **AWS 账户：**您需要一个启用账单的有效 AWS 账户。如果你没有，请在 [aws.ama](https://aws.amazon.com/) zon.com 上注册。
+ **IAM 权限：**您的 AWS 用户或角色必须具有以下权限：
  + `lex:*`-用于机器人创建和管理的完整 Amazon Lex V2 权限
  + `iam:CreateRole`-为机器人创建服务角色
  + `iam:AttachRolePolicy`-将策略附加到服务角色
  + `lambda:CreateFunction`-用于 Lambda 集成（可选）
  + `logs:CreateLogGroup`-用于 Amazon CloudWatch 日志记录
+ **区域选择：**选择支持 Amazon Lex V2 和您的目标受众的 AWS 区域。推荐的区域包括：
  + 美国东部（弗吉尼亚州北部）- us-east-1
  + 美国西部（俄勒冈）- us-west-2
  + 欧洲（爱尔兰）：eu-west-1
  + 亚太地区（悉尼）- ap-southeast-2

#### 服务限制和配额
<a name="service-limits-quotas"></a>

Amazon Lex V2 有多个服务限制，可能会影响您的机器人开发和部署：
+ **机器人限制：**
  + 每个区域每个账户最多 100 个机器人
  + 每个机器人最多 100 个意图
  + 每个机器人最多 100 个插槽类型
  + 每个意图最多 200 个插槽
+ **运行时间限制：**
  + 最长 15 分钟会话超时
  + 每秒最多 1,000 个请求（可以增加）
  + 每个文本输入最多 1,500 个字符
+ **训练数据限制：**
  + 每个意图最多有 1,500 句话样本
  + 最大 10,000 个插槽类型值
  + 每个样本话语最多 140 个字符

**注意**  
如果您需要更高的生产使用限制，可以通过 AWS Support Center 申请增加配额。

#### 与成本相关的注意事项
<a name="cost-considerations"></a>

了解 Amazon Lex V2 定价有助于您为聊天机器人部署进行规划和预算：
+ **基于请求的定价：**
  + 短信请求：在每月前 10,000 个请求之后，每个请求 0.00075 美元
  + 语音请求：在每月前 1,000 个请求之后，每个请求 0.004 美元
+ **免费套餐：**
  + 第一年每月有 10,000 个短信请求
  + 第一年每月有 1,000 个演讲请求
+ **额外费用：**
  + Lambda 函数（如果使用）：每 100 万个请求 0.20 美元 \$1 计算时间
  + Amazon CloudWatch Logs 日志：每摄取 GB 0.50 美元
  + 外部集成的数据传输成本
+ **成本优化技巧：**
  + 使用会话属性减少冗余的 API 调用
  + 实施高效的对话流程以最大限度地减少轮流
  + 通过 CloudWatch 日志监控使用情况，以确定优化机会

**重要**  
有关当前定价信息，请访问 [Amazon Lex 定价页面](https://aws.amazon.com/lex/pricing/)，因为费率可能会发生变化。

#### Lambda 集成概述
<a name="lambda-integration-basics"></a>

虽然本练习的重点是 Lex 机器人配置，但所描述的高级功能（POS 集成、潜在客户生成、收入优化）通常需要 Lambda 函数进行后端处理。
+ **当需要 Lambda 时：**
  + 根据外部数据库验证订单状态
  + 实时库存检查以进行追加销售
  + 客户数据的存储和检索
  + 使用客户的名字和姓氏在 S3 表中查找销售历史记录
  + 购买模式分析以获得个性化推荐
  + 付款处理集成
  + 电子邮件和短信确认发送
+ **S3 销售历史集成：**
  + 使用 CustomerFirstName 和 CustomerLastName 插槽查询 S3 表
  + 分析购买历史记录以确定购买模式和偏好
  + 根据过去的购买情况生成个性化的产品推荐
  + 计算动态定价策略的客户生命周期价值
  + 通过购买关联分析识别交叉销售机会
+ **基本 Lambda 设置要求：**
  + 具有适当权限的 Lambda 执行角色
  + 访问私有资源时的 VPC 配置
  + 用于配置的环境变量
  + 错误处理和日志记录实现
+ **集成点：**
  + 意图实现-处理已完成的意图
  + 插槽验证-实时验证用户输入
  + 对话管理-控制对话流程

**注意**  
在本练习中，我们将重点介绍 Lex 机器人配置。随着需求的变化，可以稍后添加 Lambda 集成。该机器人将使用静态响应进行测试和演示。

#### 实施前清单
<a name="getting-started-checklist"></a>

在继续创建机器人之前，请确认您已经：
+ ✓ 已启用账单的活跃 AWS 账户
+ ✓ 适用于 Lex 和相关服务的适当的 IAM 权限
+ ✓ 选定的目标 AWS 区域
+ ✓ 已审查服务限制和配额
+ ✓ 了解成本影响
+ ✓ 计划中的 Lambda 集成方法（如果需要）
+ ✓ 访问 AWS 管理 AWS 管理控制台

### 创建 SmartCommerce 机器人
<a name="create-advanced-bot-procedure"></a>

**创建 SmartCommerce 客户服务机器人**

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

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

1. 对于**创建方法**，请选择**创建空白机器人**。

1. 在 **Bot 配置**部分：
   + 机器人名称：**SmartCommerceBot**
   + 描述：**Advanced customer service chatbot with upselling, lead generation, and revenue optimization**

1. 在**权限**部分，选择**使用基本 Amazon Lex 权限创建新角色**。

1. 在**儿童在线隐私保护法（COPPA）**部分中，选择**否**。

1. 在 “**会话超时**” 部分中，设置为**15 minutes**允许进行复杂的多回合对话。

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

1. 添加英语（美国）作为语言，然后选择**完成**。

### 创建自定义插槽类型
<a name="create-custom-slot-types-procedure"></a>

**创建自定义插槽类型**

1. 在左侧导航窗格中，选择**插槽类型**。

1. 选择**添加插槽类型**并创建以下插槽类型：

   1. **ProductCategories:**
      + 电子产品
      + 服装
      + 主页
      + 书籍
      + Sports
      + 美丽
      + 汽车

   1. **ReturnReasons:**
      + 有缺陷
      + 尺码错误
      + 改变主意了
      + 与描述不符
      + 在运输中损坏
      + 找到了更优惠的价格

   1. **ContactPreferences:**
      + 电子邮件
      + 短信
      + 电话呼叫
      + 应用程序内通知
      + Mail

   1. **CustomerTiers:**
      + 青铜
      + 银
      + 黄金
      + 铂

### 创建自定义意图
<a name="create-intents-procedure"></a>

**创建 CheckOrderStatus 意图**

1. 在左侧导航窗格中，选择 **Intents。**

1. 选择**添加意图**并命名它**CheckOrderStatus**。

1. 添加以下语句示例：
   + “我的订单状态如何 \$1OrderNumber\$1”
   + “我需要查看订单号 \$1OrderNumber\$1”
   + “我的包裹在哪里”
   + “追踪我的订单 \$1OrderNumber\$1”
   + “我的订单发货了吗”
   + “我的订单什么时候能送达”
   + “我想知道我的配送情况”

1. 添加以下插槽：
   + `OrderNumber`([AMAZON.Number](built-in-slot-number.md))-必填项

     提示：“你能提供订单号吗？”
   + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md))-必填项

     提示：“要验证您的身份，请提供与此订单相关的电子邮件地址。”

1. 设置确认提示：“让我检查订单 \$1 \$1OrderNumber\$1 中是否有 \$1CustomerEmail\$1。是否确认？”

1. 设置配送消息：“我找到了你的订单！订单 \$1 \$1OrderNumber\$1 是 \$1OrderStatus\$1。 \$1UpsellMessage\$1”

**创建 UpsellProducts 意图**

1. 创建一个名为的新意图**UpsellProducts**。

1. 添加示例话语：
   + “给我看相关产品”
   + “这还能带来什么”
   + “你有什么优惠吗”
   + “我对 \$1ProductCategory\$1 件商品感兴趣”
   + “今天有哪些在售”
   + “给我看更多选项”

1. 添加插槽：
   + `ProductCategory`(ProductCategories)-必填项

     提示：“您对哪种类型的产品感兴趣？”
   + `Budget`([AMAZON.Number](built-in-slot-number.md))-可选

     提示：“您购买其他商品的预算范围是多少？”

**创建 CaptureLeadInfo 意图**

1. 创建一个名为的新意图**CaptureLeadInfo**。

1. 添加示例话语：
   + “我想听听新产品”
   + “注册我以获取最新消息”
   + “我对 \$1InterestCategory\$1 感兴趣”
   + “随时向我通报销售情况”
   + “我想加入你的邮件列表”
   + “向我发送优惠和优惠”
   + “我叫 \$1CustomerFirstName\$1 \$1CustomerLastName\$1”
   + “我是 \$1CustomerFirstName\$1 \$1CustomerLastName\$1，我想要个性化推荐”

1. 添加插槽：
   + `CustomerFirstName`([AMAZON.FirstName](built-in-slot-first-name.md))-必填项

     提示：“你对个性化服务的名字是什么？”
   + `CustomerLastName`([AMAZON.LastName](built-in-slot-last-name.md))-必填项

     提示：“还有你的姓氏这样我就可以查看你的购买历史记录了吗？”
   + `CustomerEmail`([AMAZON.EmailAddress](built-in-slot-email.md))-必填项
   + `CustomerPhone`([AMAZON.PhoneNumber](built-in-slot-phone.md))-可选
   + `InterestCategory`(ProductCategories)-必填项
   + `ContactPreference`(ContactPreferences)-必填项

### 启用 AI 驱动的功能
<a name="enable-ai-features-procedure"></a>

**启用辅助 NLU 和其他 AI 功能**

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

1. 在 “**辅助 NLU**” 下，选择 “**启用**”。

1. 在**生成式 AI** 下，启用：
   + 辅助槽位解析
   + 描述性机器人构建

1. 在 “**情绪分析**” 下，选择 “**启用**”。

1. 选择**保存**。

### 测试并部署机器人
<a name="test-and-deploy-procedure"></a>

**测试 SmartCommerce 机器人**

1. 选择 B **uild** 来编译你的机器人。

1. 构建完成后，选择 “**测试**”。

1. 测试以下对话流程：

   1. **订单状态流程：**
      + 用户：“查看我的订单 12345”
      + Bot：请求电子邮件验证
      + 用户：提供电子邮件
      + Bot：提供状态并提供追加销售

   1. **追加销售流程：**
      + 用户：“给我看优惠”
      + Bot：询问产品类别
      + 用户：“电子产品”
      + Bot：提供个性化优惠

   1. **潜在客户生成流程：**
      + 用户：“注册我以获取更新”
      + Bot：收集联系信息
      + 用户：提供详细信息
      + Bot：确认订阅并立即提供折扣

1. 验证 AI 功能是否正常运行：
   + 测试自然语言变体，比如 “我的东西还没到”
   + 验证情绪分析会调整机器人响应
   + 确认插槽分辨率适用于复杂输入

1. 测试完成后，选择 P **ublish** 来部署您的机器人。

## 性能分析和优化
<a name="exercise-3-analytics"></a>

使用全面的分析和收入跟踪来监控和优化 SmartCommerce 机器人的性能。

### 关键绩效指标
<a name="key-metrics"></a>
+ **收入指标：**
  + 按客户等级划分的追加销售转化率
  + 每次互动的平均订单价值增加
  + 每次对话的收入
  + 对客户生命周期价值的影响
+ **潜在客户生成指标：**
  + 按互动类型划分的潜在客户捕获率
  + 潜在客户质量分数和转化率
  + 来自聚合器销售的数据变现收入
  + 电子邮件订阅增长率
+ **运营指标：**
  + 意图识别精度
  + 槽位填充成功率
  + 对话完成率
  + 客户满意度分数

### 持续优化策略
<a name="optimization-strategies"></a>
+ **A/B 测试：**
  + 测试不同的追加销售信息传递方法
  + 比较激进与温和的线索捕获技术
  + 优化 discount 百分比以获得最大转化率
+ **Machine Learning 优化**
  + 分析成功的对话模式
  + 确定追加销售优惠的最佳时机
  + 完善客户等级分类算法

## 练习结论
<a name="exercise-3-conclusion"></a>

恭喜您！您已经成功构建了一个高级客户服务聊天机器人，该聊天机器人展示了企业级收入优化和客户参与能力。该 SmartCommerce 机器人展示了企业如何利用 Amazon Lex V2 的人工智能驱动功能来：
+ **最大限度地提高收入：**通过智能的向上销售、交叉销售和动态定价策略
+ **生成潜在客户：**通过系统地捕获和验证多个收入来源的客户信息
+ **增强客户体验：**使用 AI 理解自然语言并提供个性化互动
+ **优化运营：**通过自动化客户服务，在保持质量的同时高效扩展

本练习中演示的技术可以针对各种行业和用例进行调整和扩展，为构建推动业务增长的复杂对话式 AI 解决方案奠定了基础。

### 后续步骤
<a name="next-steps"></a>

要进一步增强您的 SmartCommerce 机器人，请考虑实施：
+ **高级集成：**
  + CRM 系统集成，提供完整的客户档案
  + 库存管理系统连接可实现实时可用性
  + 支付处理集成，实现无缝交易
+ **多渠道部署：**
  + 网站聊天小部件集成
  + 社交媒体平台连接
  + 语音接口实现
+ **高级分析：**
  + 业务指标的自定义仪表板开发
  + 客户行为的预测性分析
  + 投资回报率跟踪和归因建模

# 入门最佳实践
<a name="getting-started-best-practices"></a>

## 对话设计原则
<a name="conversation-design-principles"></a>

从一开始就遵循这些对话设计原则将帮助您构建更有效、更易于维护和用户友好的Amazon Lex V2聊天机器人，从而提供自然的交互。

### 核心设计原则
<a name="core-design-principles"></a>
+ 从@@ **用户目标开始** ——围绕用户想要实现的目标而不是你的系统能做的事情来设计你的机器人。专注于用户的旅程和预期的结果。
+ **使用自然语言-以**对话方式撰写提示和回复。避免使用技术术语，像乐于助人一样说话。
+ **提供清晰的选项**-当用户遇到困难时，请提供他们能说什么的具体示例，而不是通用的帮助文本。
+ **保持简单**-从基本功能开始，然后逐渐增加复杂性。用户应该能够快速完成常见任务。
+ **优雅地处理错误** ——当机器人不明白时，提供有用的指导，而不仅仅是说 “我不明白”。
+ **确认重要操作**-在采取无法轻易撤消的操作（例如下订单或删除信息）之前，请务必进行确认。
+ **提供逃生路线**-始终为用户提供重新开始、寻求帮助或在需要时与人联系的方法。

### 对话流程最佳实践
<a name="conversation-flow-best-practices"></a>
+ **设定明确的期望值** ——让用户在对话的早期就知道机器人能做什么和不能做什么。
+ **使用 Progressiv** e Disclosure-逐一询问信息，而不是用多个问题让用户不知所措。
+ **提供上下文**-提醒用户您已经收集了哪些信息以及您还需要哪些信息。
+ **让更正变得简单**-允许用户更正信息，而无需完全重新开始。

## 真实世界的用例和示例
<a name="real-world-use-cases"></a>

这些实际示例展示了如何将对话设计原则应用于新的 Amazon Lex V2 用户遇到的常见场景。

### 用例 1：预约
<a name="use-case-appointment-booking"></a>

**场景：**医疗办公室想要自动安排预约。

**挑战：**用户需要提供多条信息（服务类型、日期、时间、联系信息），并且可能需要更改详细信息。

**解决方案方法：**
+ **Start Broad：**“你想安排什么类型的预约？” （牙科、眼科检查、咨询）
+ **缩小范围：**“你更喜欢什么时候预约牙科？” （接受灵活的输入，比如 “下周” 或 “星期五下午”）
+ **确认并报价变更：**“我已安排你在 3 月 15 日星期五下午 2 点进行牙科清洁。这对你有用吗？”
+ **处理更改：**如果用户说 “我们可以改为下午 3 点做吗？” ，在不重新启动整个过程的情况下更新时间。

**关键技术：**
+ 使用[AMAZON.Date](built-in-slot-date.md)和[AMAZON.Time](built-in-slot-time.md)进行灵活 date/time 输入
+ 为预约类型创建自定义时段类型
+ 在完成预订之前使用确认提示

### 用例 2：查询订单状态
<a name="use-case-order-tracking"></a>

**场景：**一家电子商务公司希望客户在不致电支持人员的情况下查看订单状态。

**挑战：**用户可能没有随身携带订单号，或者可能以不同的方式提问。

**解决方案方法：**
+ **多个入口点：**接受 “我的订单在哪里？” 、“追踪我的包裹” 或 “订单状态”
+ **灵活识别：**“我可以帮你追踪订单。你有订单号吗，还是更愿意使用你的电子邮件地址？”
+ **实用指南：**“您的订单号通常在确认电子邮件中，并以'ORD-'开头”
+ **结果清晰：**“您的订单 \$1ORD -12345 已于昨天发货，将于明天晚上 8 点之前送达。你想要追踪详情吗？”

**关键技术：**
+ 使用内置插槽类型，例如亚马逊。 AlphaNumeric 获取订单号
+ 提供多种识别订单的方法（电子邮件、电话、订单号）
+ 在回复中提供清晰、可操作的信息

### 用例 3：FAQ 和 Support
<a name="use-case-faq-support"></a>

**场景：**一家软件公司想要自动处理常见的支持问题。

**挑战：**用户以许多不同的方式提出相同的问题，有些问题需要人工帮助。

**解决方案方法：**
+ **广泛意图识别：**训练意图可以识别诸如 “我无法登录”、“登录问题”、“密码不起作用” 之类的变体
+ **指导式故障排除：**“让我们尝试几个快速步骤。首先，你试过重置密码吗？”
+ **升级路径：**“如果这些步骤不起作用，我可以将你与我们的支持团队联系起来。你想让我这样做吗？”
+ **后续行动：**“这解决了你的问题吗？ 如果你需要其他方面的帮助，你可以随时说'帮助'。”

**关键技术：**
+ 使用许多示例话语来捕捉用户表达问题的不同方式
+ 提供 step-by-step指导而不是冗长的解释
+ 当自动化帮助不足时，请务必提供人工支持的途径

### 处理复杂场景
<a name="handling-complex-scenarios"></a>

即使是简单的机器人也会遇到复杂的情况。以下是如何优雅地处理它们：
+ **当用户改变主意时：**
  + 用户：“实际上，我想要的是玫瑰而不是郁金香”
  + Bot：“没问题！我已经将你的订单更新为玫瑰了。您的玫瑰将在周五下午 2 点准备好领取。这是对的吗？”
+ **当信息不清楚时：**
  + 用户：“我需要下周的花”
  + Bot：“我很乐意帮忙！下周哪一天最适合你？ 你可以说'星期一'或'下周二'之类的话。”
+ **当机器人不明白时：**
  + 用户：“我想要长茎的紫色”
  + Bot：“我想确保我做对了。你在找紫色的花吗？ 我们有紫玫瑰、紫色郁金香和紫色虹膜可供选择。”
+ **当用户需要重新开始时：**
  + 用户：“取消这个，我想重新开始”
  + Bot：“当然！我已经清除了你当前的订单。你今天想订什么类型的花？”