

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

# 入门最佳实践
<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：“当然！我已经清除了你当前的订单。你今天想订什么类型的花？”