

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

# 内置槽位类型
<a name="built-in-slots"></a>

Amazon Lex 支持内置插槽类型，用于定义如何识别和处理插槽中的数据。您可以在您的意图中创建这些类型的槽。因此，无需为常用槽数据（如日期、时间和位置）创建枚举值。内置槽类型没有版本。




| 槽位类型 | 简短描述 | 支持的区域设置 | 
| --- | --- | --- | 
|  [AMAZON.AlphaNumeric](built-in-slot-alphanumeric.md)  | 识别由字母和数字组成的单词。 | 
|  [AMAZON.City](built-in-slot-city.md)  | 识别代表城市的词语。 | 所有区域设置 | 
|  [AMAZON.Confirmation](built-in-slot-confirmation.md)  | 识别表示“是”、“否”、“也许”和“不知道”的单词，并将其转换为标准（是/否/可能/不知道）格式。 | 所有区域设置 | 
|  [AMAZON.Country](built-in-slot-country.md)  | 识别代表国家/地区的词语。 | 所有区域设置 | 
|  [AMAZON.Currency](built-in-slot-currency.md)  | 识别表示货币值的词语并将其转换为标准货币缩写和值。 | 所有区域设置 | 
|  [AMAZON.Date](built-in-slot-date.md)  | 识别代表日期的词语并将其转换为标准格式。 | 所有区域设置 | 
|  [AMAZON.Duration](built-in-slot-duration.md)  | 识别代表持续时间的词语并将其转换为标准格式。 | 所有区域设置 | 
|  [AMAZON.EmailAddress](built-in-slot-email.md)  | 识别表示电子邮件地址的词语并将其转换为标准电子邮件地址。 | 所有区域设置 | 
|  [AMAZON.FirstName](built-in-slot-first-name.md)  | 识别代表名字的词语。 | 所有区域设置 | 
|  [AMAZON.LastName](built-in-slot-last-name.md)  | 识别代表姓氏的词语。 | 所有区域设置 | 
|  [AMAZON.Number](built-in-slot-number.md)  | 识别数字词语并将其转换为数字。 | 所有区域设置 | 
|  [AMAZON.Percentage](built-in-slot-percent.md)  | 识别表示百分比的词语并将其转换为一个数字和一个百分比符号（%）。 | 所有区域设置 | 
|  [AMAZON.PhoneNumber](built-in-slot-phone.md)  | 识别表示电话号码的词语并将其转换为数字字符串。 | 所有区域设置 | 
|  [AMAZON.State](built-in-slot-state.md)  | 识别代表省/市/自治区的单词。 | 所有区域设置 | 
|  [AMAZON.StreetName](built-in-slot-street-name.md)  | 识别代表街道名称的单词。 | 所有区域设置 | 
|  [AMAZON.Time](built-in-slot-time.md)  | 识别指示时间的单词并将其转换为时间格式。 | 所有区域设置 | 
|  [AMAZON.UKPostalCode](built-in-slot-uk-postal-code.md)  | 识别代表英国邮政编码的单词并将其转换为标准格式。 | 仅限英语（英国）（en-GB） | 
|  [AMAZON.FreeFormInput](built-in-slot-free-form.md)  | 识别由任何单词或字符组成的字符串。 | 所有区域设置 | 

# AMAZON.AlphaNumeric
<a name="built-in-slot-alphanumeric"></a>

识别由字母和数字组成的字符串，例如 **APQ123**。

您可以对包含以下内容的字符串使用 `AMAZON.AlphaNumeric` 槽类型：
+ 字母字符，例如 **ABC**
+ 数字字符，例如 **123**
+ 字母数字字符的组合，例如 **ABC123**

`AMAZON.AlphaNumeric` 槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入字母。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

您可以向 `AMAZON.AlphaNumeric` 槽类型添加正则表达式以验证为槽输入的值。例如，您可以使用正则表达式来验证：
+ 加拿大邮政编码
+ 驾照编号
+ 车辆识别号码

使用标准正则表达式。Amazon Lex V2 支持在正则表达式中使用以下字符：
+ A-Z, a-z
+ 0-9

Amazon Lex V2 还支持正则表达式中的 Unicode 字符。格式为 `\uUnicode`。使用四位数表示 Unicode 字符。例如，`[\u0041-\u005A]` 等同于 [A-Z]。

不支持以下正则表达式运算符：
+ 无限重复符：\$1、\$1 或 \$1x,\$1，无上限。
+ 通配符（.）

正则表达式的最大长度为 300 个字符。存储在使用正则表达式的 `AMAZON.AlphaNumeric` 槽位类型中的字符串的最大长度为 30 个字符。

以下是一些示例正则表达式。
+ 字母数字字符串，例如 **APQ123** 或 **APQ1**：`[A-Z]{3}[0-9]{1,3}` 或更受约束的 `[A-DP-T]{3} [1-5]{1,3}`
+ 美国邮政服务优先邮件国际格式，例如 **CP123456789US**：`CP[0-9]{9}US`
+ 银行汇款路径号码，例如 **123456789**：`[0-9]{9}`

要为槽位类型设置正则表达式，请使用控制台或 [CreateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlotType.html) 操作。保存槽类型时验证正则表达式。如果表达式无效，Amazon Lex V2 将返回错误消息。

在槽位类型中使用正则表达式时，Amazon Lex V2 会根据正则表达式检查该类型的槽位的输入。如果输入与表达式匹配，则接受槽的值。如果输入不匹配，Amazon Lex V2 提示用户重复输入。

# AMAZON.City
<a name="built-in-slot-city"></a>

提供本地和世界城市列表。槽位类型可以识别城市名称的常见变体。Amazon Lex V2 不将变体转换为官方名称。

示例：
+ New York
+ 雷克雅未克
+ 东京
+ Versailles

# AMAZON.Confirmation
<a name="built-in-slot-confirmation"></a>

此槽位类型可识别与 Amazon Lex V2 的“是”、“否”、“也许”和“不知道”短语和单词相对应的输入短语，并将其转换为四个值之一。该槽位类型可用于捕获用户的确认或认可。根据最终解析的值，您可以创建条件来设计多个对话路径。

例如：

 如果 \$1confirmation\$1 = "Yes"，则履行此意图

 否则，引发另一个槽位 

示例：
+ 是：是的、是、好吧、当然、我明白了、我可以同意...
+ 不：不、否、不行、算了吧、我拒绝、不可能...
+ 也许：有可能、也许、有时、我可能会、这可能是对的......
+ 不知道：不了解、未知、不知道、不确定、谁知道......

自 2023 年 8 月 17 日起，如果现有名为“确认”的自定义槽位类型，则必须更改名称以避免与内置槽位确认发生冲突。在 Lex 控制台的左侧导航栏中，转到槽位类型（适用于名为“确认”的现有自定义槽位类型），然后更新槽位类型名称。新的槽位类型名称不得为“确认”，这是为内置确认槽位类型预留的关键字。

# AMAZON.Country
<a name="built-in-slot-country"></a>

世界各个国家/地区的名字。示例：
+ 澳大利亚
+ 德国
+ 日本
+ 美国
+ 乌拉圭

# AMAZON.Currency
<a name="built-in-slot-currency"></a>

将表示货币的词语转换为标准 ISO 4217 字母货币代码和数字。Amazon Lex V2 可以识别货币，但不会从一种货币转换为另一种货币。

有关更多信息，请参阅国际标准化组织（ISO）网站上的[货币代码 — ISO 4217](https://www.iso.org/iso-4217-currency-codes.html)。

所代表的货币结构如下：`{Unit} {Amount}`
+ \$1Unit\$1 是指特定的货币单位（例如 USD）。
+ \$1Amount\$1 表示货币价值，采用小数点后两位的格式（例如 300.00）。

示例（以下所有示例均使用 en-US 区域设置；不同的区域设置可能会产生不同的结果）：
+ “3USD”：3.00 美元
+ “USD300”：300.00 美元
+ “3 dimes”：0.30 美元
+ “\$11.56”：1.56 美元
+ “5c”：0.05 美元
+ “1 dollar”：1.00 美元
+ “five fifteen”：515.00 美元
+ “five dollars fifteen cents”：5.15 美元
+ “5 usd and 1/2”：5.50 美元

# AMAZON.Date
<a name="built-in-slot-date"></a>

将表示日期的词语转换为日期格式。

日期以 ISO-8601 日期格式提供给您的意图。您的意图在插槽中收到的日期可能会有所不同，具体取决于用户说出的特定短语。
+ 映射到特定日期的言语（例如“今天”、“现在”或“11 月 25 日”）会转换为完整的日期：`2020-11-25`。默认为当前*日期或之后*的日期。
+ 映射到未来特定星期的言语（例如“下周”）会转换为本周最后一天的日期。在 ISO-8601 格式中，一周的第一天是星期一，最后一天是星期日。例如，如果今天是 2020 年 11 月 25 日，则“下周”会转换为 `2020-11-29`。映射到本周或上一周的日期会转换为该周的第一天。例如，如果今天是 2020 年 11 月 25 日，则“上周”会转换为 `2020-11-16`。
+ 映射到未来某个月但不是特定日期（例如“下个月”）的言语会转换为该月的最后一天。例如，如果今天是 2020 年 11 月 25 日，则“下个月”会转换为 `2020-12-31`。映射到本月或上个月的日期会转换为该月的第一天。例如，如果今天是 2020 年 11 月 25 日，则“本月”映射到 `2020-11-01`。
+ 映射到未来某一年但不是特定月份或日期（例如“下一年”）的言语会转换为该下一年的最后一天。例如，如果今天是 2020 年 11 月 25 日，则“下一年”会转换为 `2021-12-31`。映射到今年或去年的日期会转换为今年的第一天。例如，如果今天是 2020 年 11 月 25 日，则“上一年”会转换为 `2019-01-01`。

# AMAZON.Duration
<a name="built-in-slot-duration"></a>

将表示持续时间的词语转换为数字持续时间。

持续时间被解析为基于 [ISO-8601 持续时间格式](https://en.wikipedia.org/wiki/ISO_8601#Durations)的格式 `PnYnMnWnDTnHnMnS`。`P` 表示这是持续时间，`n` 是数值，`n` 后面的大写字母是特定的日期或时间元素。例如，`P3D` 表示 3 天。`T` 用于表示其余值代表时间元素而不是日期元素。

示例：
+ “十分钟”：`PT10M`
+ “五个小时”：`PT5H`
+ “三天”：`P3D`
+ “四十五秒”：`PT45S`
+ “八周”：`P8W`
+ “七年”：`P7Y`
+ “五小时十分钟”：`PT5H10M`
+ “两年三小时十分钟”：`P2YT3H10M`

# AMAZON.EmailAddress
<a name="built-in-slot-email"></a>

识别表示以 username@domain 形式提供的电子邮件地址的单词。地址中的用户名可以包括下列特殊字符：下划线（\$1）、连字符（-）、句点（.）和加号（\$1）。

`AMAZON.EmailAddress` 槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入电子邮件地址。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

# AMAZON.FirstName
<a name="built-in-slot-first-name"></a>

常用的名字。该槽位类型可以识别正式姓名、非正式昵称以及由多个单词组成的姓名。发送给您的意图的名称即为用户发送的值。Amazon Lex V2 不会将昵称转换为正式姓名。

对于听起来相似但拼写不同的名字，Amazon Lex V2 会向您的意图发送一份通用表格。

`AMAZON.FirstName` 槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入姓名。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

示例：
+ Emily
+ John
+ Sophie
+ Anil Kumar

AMAZON.FirstName 还基于原始值返回一份密切相关的姓名列表。您可以使用已解析值列表来恢复拼写错误、向用户确认姓名或在用户目录中执行数据库查找有效名称。

例如，输入“John”可能会返回其他相关姓名，例如“John J”和“John-Paul”。

以下显示了 `AMAZON.FirstName` 内置槽位类型的响应格式：

```
"value": {
    "originalValue": "John",
    "interpretedValue": "John",
    "resolvedValues": [
        "John",
        "John J.",
        "John-Paul"
    ]
}
```

# AMAZON.LastName
<a name="built-in-slot-last-name"></a>

常用的姓氏。对于听起来相似但拼写不同的姓名，Amazon Lex V2 会向您的意图发送一份通用表格。

`AMAZON.LastName` 槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入姓名。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

示例：
+ 布罗斯基
+ 达舍
+ 埃弗斯
+ 帕雷斯
+ Welt

AMAZON.LastName 还基于原始值返回一份密切相关的姓名列表。您可以使用已解析值列表来恢复拼写错误、向用户确认姓名或在用户目录中执行数据库查找有效名称。

例如，输入“Smith”可能会返回其他相关姓名，例如“Smyth”和“Smithe”。

以下显示了 `AMAZON.LastName` 内置槽位类型的响应格式：

```
"value": {
    "originalValue": "Smith",
    "interpretedValue": "Smith",
    "resolvedValues": [
        "Smith",
        "Smyth",
        "Smithe"
    ]
}
```

# AMAZON.Number
<a name="built-in-slot-number"></a>

将表示数值的词语或数字转换为数字，包括十进制数字。下表介绍 `AMAZON.Number` 槽类型如何捕获数字词汇。


| 输入 | 响应 | 
| --- | --- | 
| 一百二十三点四五 | 123.45 | 
| 一二三点四五 | 123.45 | 
| 零点四二 | 0.42 | 
| 点四二 | 0.42 | 
| 232.998 | 232.998 | 
| 50 | 50 | 
| -15 | -15 | 
| 负 15 | -15 | 
| 负十五点二四五 | -15.245 | 

# AMAZON.Percentage
<a name="built-in-slot-percent"></a>

将表示百分比的词汇和符号转换为一个带百分比符号（%）的数字值。

如果用户输入不带百分号或“百分之”这个词的数字，则槽值将设置为该数字。下表介绍 `AMAZON.Percentage` 槽类型如何捕获百分比。


| 输入 | 响应 | 
| --- | --- | 
| 百分之 50 | 50% | 
| 百分之 0.4 | 0.4% | 
| 23.5% | 23.5% | 
| 百分之二十五 | 25% | 

# AMAZON.PhoneNumber
<a name="built-in-slot-phone"></a>

如下将表示电话号码的数字或词转换为不含标点符号的字符串格式。


| 类型 | 描述 | 输入 | 结果 | 
| --- | --- | --- | --- | 
| 前面带加号（\$1）的国际号码 | 前面带加号（\$1）的 11 位数字。 |  \$161 7 4445 1061 \$11 （509） 555-1212  |   `+61744431061`   `+15095551212`   | 
| 前面不带加号（\$1）的国际号码 | 前面不带加号（\$1）的 11 位数字 |  1 （509） 555-1212 61 7 4445 1061  |   `15095551212`   `61744451061`   | 
| 国家/地区代码 | 不带国际代码的 10 位数字 |  （03） 5115 4444 （509） 555-1212  |   `0351154444`   `5095551212`   | 
| 本地号码 | 不带国际代码或区号的电话号码 | 555-1212 |  5551212  | 

# AMAZON.State
<a name="built-in-slot-state"></a>

国家/地区内部的地理和政治区域的名称。

示例：
+ 巴伐利亚
+ 福岛县
+ 太平洋西北地区
+ 昆士兰
+ 威尔士

# AMAZON.StreetName
<a name="built-in-slot-street-name"></a>

典型街道地址内的街道名称。这只包括街道名称，不包括门牌号码。

示例：
+ 堪培拉大道
+ 前街
+ 市场路

# AMAZON.Time
<a name="built-in-slot-time"></a>

将表示时间的单词转换为时间值。`AMAZON.Time` 可以解析确切的时间、不明确的值和时间范围。该槽位值可以解析为以下时间范围：
+ AM
+ PM
+ MO（上午）
+ AF（下午）
+ EV（傍晚）
+ NI（晚上）

当用户输入不明确的时间时，Amazon Lex V2 使用 Lambda 事件的 `slots` 属性将不确定的时间的解析传递给 Lambda 函数。例如，如果自动程序提示用户输入交付时间，用户可能以“10 点钟”作为响应。这样的时间是不明确的。它可能指上午 10:00 或晚上 10:00。这种情况下，`interpretedValue` 字段中的值为 `null`，而 `resolvedValues` 字段包含对该时间的两种可能的解析。Amazon Lex V2 将以下内容输入 Lambda 函数：

```
"slots": {
    "deliveryTime": {
    "value": {
        "originalValue": "10 o'clock",
        "interpretedValue": null,
        "resolvedValues": [
            "10:00", "22:00"
        ]
    }
}
```

当用户以明确的时间作为响应时，Amazon Lex V2 在 Lambda 事件的 `slots` 属性的 `interpretedValue` 字段中将该时间发送到 Lambda 函数。例如，如果用户在收到输入交付时间的提示时，以“早上 10:00”作为响应，则 Amazon Lex V2 将以下内容输入 Lambda 函数：

```
"slots": {
    "deliveryTime": {
        "value": {
        "originalValue": "10 AM",
        "interpretedValue": 10:00,
        "resolvedValues": [
            "10:00"
        ]
    }
}
```

例如，如果用户在收到输入交付时间的提示时，以“上午”作为响应，则 Amazon Lex V2 将以下内容输入 Lambda 函数：

```
"slots": {
    "deliveryTime": {
    "value": {
        "originalValue": "morning",
        "interpretedValue": "MO",
        "resolvedValues": [
            "MO"
        ]
    }
}
```

有关 Amazon Lex V2 发送到 Lambda 函数的数据的更多信息，请参阅[AWS LambdaLex V2 的输入事件格式](lambda-input-format.md)。

# AMAZON.UKPostalCode
<a name="built-in-slot-uk-postal-code"></a>

将代表英国邮政编码的单词转换为英国邮政编码的标准格式。`AMAZON.UKPostalCode` 槽位类型会验证邮政编码并将其解析为一组标准化格式，但不会检查邮政编码是否有效。您的应用程序必须验证邮政编码。

`AMAZON.UKPostalCode` 槽位类型仅在英语（英国）（en-GB）区域设置中可用。

`AMAZON.UKPostalCode` 槽位类型支持使用拼写样式进行输入。您可以使用逐字母拼写以及逐单词拼写样式来帮助客户输入字母。有关更多信息，请参阅 [在对话期间使用拼写样式捕获槽位值](spelling-styles.md)。

该槽位类型仅识别英国境内使用的下列有效邮政编码格式。有效的格式如下（“A”代表字母，“9”代表数字）：
+ AA9A 9AA
+ A9A 9AA
+ A9 9AA
+ A99 9AA
+ AA9 9AA
+ AA99 9AA

对于文本输入，用户可以输入大小写字母的任意组合。用户可以在邮政编码中使用或省略空格。解析后的值将始终包括位于邮政编码中正确位置处的空格。

对于口述输入，用户可以说出单个字符，也可以使用双字母发音，例如“两个 A”或“两个 9”。用户还可以使用两位数的发音，例如“九十九”代表“99”。

**注意**  
并非所有英国邮政编码都能被识别。仅支持上面列出的格式。

# AMAZON.FreeFormInput
<a name="built-in-slot-free-form"></a>

`AMAZON.FreeFormInput` 可用于捕获最终用户的自由格式输入。识别由单词或字符组成的字符串。解析的值是整个输入言语。

示例：

机器人：请根据您的通话体验提供反馈。

用户：我的所有问题都得到了解答，并且交易已完成。

注意：
+ `AMAZON.FreeFormInput` 可用于捕获最终用户的原样自由格式输入。
+ `AMAZON.FreeFormInput` 无法用于示例意图言语中。
+ `AMAZON.FreeFormInput` 无法具有示例槽位言语。
+ `AMAZON.FreeFormInput` 只有在被引发时才会被识别。
+ `AMAZON.FreeFormInput` 不支持等待并继续。
+ `AMAZON.FreeFormInput` 在 Amazon Connect 聊天频道中目前不支持。
+ 当 `AMAZON.FreeFormInput` 槽位被引发时，`FallbackIntent` 不会被触发。
+ 当 `AMAZON.FreeFormInput` 槽位被引发时，将不会执行意图切换。