

终止支持通知：2025年9月15日， AWS 我们将停止对Amazon Lex V1的支持。2025 年 9 月 15 日之后，您将无法再访问 Amazon Lex V1 控制台或 Amazon Lex V1 资源。如果您使用的是 Amazon Lex V2，请改为参阅 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

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

# 内置槽类型
<a name="howitworks-builtins-slots"></a>

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


| 槽位类型 | 简短描述 | 支持的区域设置 | 
| --- | --- | --- | 
| [AMAZON.Airport](built-in-slot-airport.md) | 识别代表机场的词语。 | 所有区域设置 | 
| [亚马逊。 AlphaNumeric](built-in-slot-alphanumeric.md) | 识别由字母和数字组成的单词。 | 除韩语 (ko-KR) 之外的所有区域设置 | 
| [AMAZON.City](built-in-slot-city.md) | 识别代表城市的词语。 | 所有区域设置 | 
| [AMAZON.Country](built-in-slot-country.md) | 识别代表国家/地区的词语。 | 所有区域设置 | 
| [AMAZON.DATE](built-in-slot-date.md) | 识别代表日期的词语并将其转换为标准格式。 | 所有区域设置 | 
| [AMAZON.DURATION](built-in-slot-duration.md) | 识别代表持续时间的词语并将其转换为标准格式。 | 所有区域设置 | 
| [亚马逊。 EmailAddress](built-in-slot-email.md) | 识别表示电子邮件地址的词语并将其转换为标准电子邮件地址。 | 所有区域设置 | 
| [亚马逊。 FirstName](built-in-slot-first-name.md) | 识别代表名字的词语。 | 所有区域设置 | 
| [亚马逊。 LastName](built-in-slot-last-name.md) | 识别代表姓氏的词语。 | 所有区域设置 | 
| [AMAZON.NUMBER](built-in-slot-number.md) | 识别数字词语并将其转换为数字。 | 所有区域设置 | 
| [AMAZON.Percentage](built-in-slot-percent.md) | 识别表示百分比的词语并将其转换为一个数字和一个百分比符号（%）。 | 所有区域设置 | 
| [亚马逊。 PhoneNumber](built-in-slot-phone.md) | 识别表示电话号码的词语并将其转换为数字字符串。 | 所有区域设置 | 
| [亚马逊。 SpeedUnit](built-in-slot-speed.md) | 识别表示速度单位的词语并将其转换为标准缩写。 | 英语（美国）(en-US) | 
| [AMAZON.State](built-in-slot-state.md) | 识别代表省/市/自治区的词语。 | 所有区域设置 | 
| [亚马逊。 StreetName](built-in-slot-street-name.md) | 识别代表街道名称的词语。 | 除英语（美国）(en-US) 之外的所有区域设置 | 
| [AMAZON.TIME](built-in-slot-time.md) | 识别指示时间的词语并将其转换为时间格式。 | 所有区域设置 | 
| [亚马逊。 WeightUnit](built-in-slot-weight.md) | 识别表示重量单位的词语并将其转换为标准缩写  | 英语（美国）(en-US) | 

**注意**  
对于英语（美国）(en-US) 区域设置，Amazon Lex 支持 Alexa Skills Kit 中的插槽类型。有关可用内置槽类型的列表，请参阅 Alexa Skills Kit 文档中的[槽类型参考](https://developer.amazon.com/docs/custom-skills/slot-type-reference.html)。  
Amazon Lex 不支持 `AMAZON.LITERAL` 或 `AMAZON.SearchQuery` 内置插槽类型。

# AMAZON.Airport
<a name="built-in-slot-airport"></a>

提供机场列表。示例包括：
+ 约翰·菲茨杰拉德·肯尼迪国际机场
+ 墨尔本机场

# 亚马逊。 AlphaNumeric
<a name="built-in-slot-alphanumeric"></a>

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

此插槽类型在韩语 (ko-KR) 区域设置中不可用。

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

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

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

Amazon Lex 在正则表达式中也支持 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}`

要为槽类型设置正则表达式，请使用控制台或 [PutSlotType](API_PutSlotType.md) 操作。保存槽类型时验证正则表达式。如果表达式无效，Amazon Lex 将返回错误消息。

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

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

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

示例：
+ New York
+ 雷克雅未克
+ 东京
+ 凡尔赛

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

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

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

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

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

# 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`

# 亚马逊。 EmailAddress
<a name="built-in-slot-email"></a>

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

# 亚马逊。 FirstName
<a name="built-in-slot-first-name"></a>

常用的名字。这种插槽类型可以识别正式名字和非正式昵称。发送给您的意图的名字是用户发送的值。Amazon Lex 不会将昵称转换为正式名字。

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

在英语（美国）(en-US) 区域设置中，使用插槽名称 AMAZON.US\$1First\$1Name。

示例：
+ Emily
+ John
+ Sophie

# 亚马逊。 LastName
<a name="built-in-slot-last-name"></a>

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

在英语（美国）(en-US) 区域设置中，使用插槽名称 AMAZON.US\$1Last\$1Name。

示例：
+ 布罗斯基
+ 达舍
+ 埃弗斯
+ 帕雷斯
+ 威尔特

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

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


| Input | 响应 | 
| --- | --- | 
| 一百二十三点四五 | 123.45 | 
| 一二三点四五 | 123.45 | 
| 零点四二 | 0.42 | 
| 点四二 | 0.42 | 
| 232.998 | 232.998 | 
| 50 | 50 | 

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

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

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


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

# 亚马逊。 PhoneNumber
<a name="built-in-slot-phone"></a>

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


| Type | 说明 | Input | 结果 | 
| --- | --- | --- | --- | 
| 前面带加号（\$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` | 
| 本地号码 | 不带国际代码或区号的 7 位数电话号码 | 555-1212 | 5551212 | 

# 亚马逊。 SpeedUnit
<a name="built-in-slot-speed"></a>

将表示速度单位的词转换为相应的缩写。例如，“每小时英里数”将转换为 `mph`。

此插槽类型仅在英语（美国）(en-US) 区域设置中可用。

以下示例说明 `AMAZON.SpeedUnit` 槽类型如何捕获速度单位。


| 速度单位 | 缩写 | 
| --- | --- | 
|  miles per hour、mph、MPH、m/h  | mph | 
|  kilometers per hour、km per hour、kmph、KMPH、km/h  | kmph | 
|  meters per second、mps、MPS、m/s  | mps | 
| nautical miles per hour、knots、knot | knot | 

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

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

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

# 亚马逊。 StreetName
<a name="built-in-slot-street-name"></a>

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

此插槽类型在英语（美国）(en-US) 区域设置中不可用。

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

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

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

```
"slots": {
   "deliveryTime": null
},
"slotDetails": {
   "deliveryTime": {
      "resolutions": [
         {
            "value": "10:00"
         },
         {
            "value": "22:00"
         }
      ]
   }
}
```

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

```
"slots": {
   "deliveryTime": "22:00"
}
```

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

# 亚马逊。 WeightUnit
<a name="built-in-slot-weight"></a>

将表示重量单位的词转换为相应的缩写。例如，“kilogram”将转换为 `kg`。

此插槽类型仅在英语（美国）(en-US) 区域设置中可用。

以下示例说明 `AMAZON.WeightUnit` 槽类型如何捕获重量单位：


| 重量单位 | 缩写 | 
| --- | --- | 
| kilograms、kilos、kgs、KGS | kg | 
| grams、gms、gm、GMS、g | g | 
| milligrams、mg、mgs | mg | 
| pounds、lbs、LBS | lbs | 
| ounces、oz、OZ | oz | 
| tonne、ton、t | t | 
| kiloton、kt | kt | 