

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

# 使用一条描述在 Lex V2 中通过描述性机器人生成器构建机器人
<a name="nld-bots"></a>

**注意**  
在利用生成式人工智能功能之前，您必须满足以下先决条件  
有关使用 Amazon Bedrock 的定价信息，请参阅 [Amazon Bedrock 定价](https://aws.amazon.com/bedrock/pricing/)。
为机器人区域设置开启生成式人工智能功能。为此，请按照[利用生成式人工智能优化 Lex V2 机器人的创建和性能](generative-features.md)中的步骤进行操作。

描述性机器人生成器允许您利用 Amazon Bedrock 对大型语言模型的访问权限来提高机器人创建过程的效率。您可以使用自然语言进行提示，包括机器人的用途和应执行的操作。Amazon Lex V2 利用 Amazon Bedrock 的功能，根据您的描述为机器人生成相关的意图和槽位类型。选择要保留的意图和槽位类型后，您就可以迭代机器人，以根据您的特定使用案例对其进行修改。有了描述性机器人生成器，您无需为机器人手动创建意图和槽位类型，从而节省时间。

描述性机器人生成器在英语区域设置中可用（请参阅[Amazon Lex V2 支持的语言和区域设置](how-languages.md)的表中以 `en_` 开头的区域设置）。

创建机器人之前，请执行以下操作。

1. 请查看[在 Lex V2 中使用自然语言描述创建机器人时所需的权限](nld-permissions.md)中的步骤，检查您的角色是否具有正确的权限。

1. 决定要使用的描述。您可以参阅[用于描述性机器人生成器的机器人描述示例](nld-examples.md)中的机器人描述示例。

通过使用自然语言来描述机器人应能做什么，创建一个机器人。Amazon Lex V2 调用 Amazon Bedrock 模型来生成适合机器人使用案例的意图和槽位类型。您可使用控制台或 API 创建机器人。

------
#### [ Console ]

**使用描述性机器人生成器创建机器人**

1. 登录 AWS 管理控制台并在[https://console.aws.amazon.com/lexv2/家](https://console.aws.amazon.com/lexv2/home)中打开 Amazon Lex V2 控制台。

1. 在**机器人**页面中，选择**创建机器人**。

1. 对于**创建方法**，请选择**描述性机器人生成器 - GenAI**。

1. 为机器人提供名称和可选描述，配置 IAM 权限，并选择机器人是否受 COPPA 约束。然后选择**下一步**。

1. 选择创建机器人时所用的语言、机器人的语音以及意图分类的置信度阈值（有关更多信息，请参阅[使用意图置信度分数改善 Lex V2 的意图选择](using-intent-confidence-scores.md)）。

1. 在**描述性机器人生成器 - GenAI** 下，为要创建的机器人提供描述。您的描述应既*详细* 又*准确*，以帮助为机器人生成适当和充分的意图。包括一份改进意图创建过程的操作列表。

1. 在**选择模型**下选择模型提供商和模型。

1. 要在其他区域设置中创建机器人，请选择**添加其他语言**。添加完语言后，请选择**完成**。Amazon Lex V2 会创建您的机器人，而描述性机器人生成器会为其生成意图和槽位。生成区域设置后，横幅将从蓝色变为绿色。选择**查看**以查看生成的意图和槽位类型。
**注意**  
描述性机器人生成器目前仅在英语区域设置中可用。但是，您可以在创建机器人后将其复制到非英语区域设置。

**查看生成的意图和槽位类型，并将其添加到机器人**

1. 如果有足够多的意图和槽位类型适用于机器人的使用案例，您就可以查看生成的意图。

   1. 查看**生成的意图**。

      1. 选中意图旁边的复选框，将此意图从要添加到机器人的意图列表中删除。

      1. 选择意图名称以查看为此意图生成的**示例言语**和**槽位**。

      1. 默认情况下，所有言语和槽位都处于选中状态。选中一个复选框可将该项目从意图中删除。选择**添加至选择**可将选中的项目保留在意图中。

   1. 查看**生成的槽位类型**。

      1. 选中槽位类型旁边的复选框，将该槽位类型从要添加到机器人的意图列表中删除。

      1. 将槽位类型添加到机器人后，可以为其添加值

1. 如果您对自己的意图和槽位类型感到满意，请选择页面顶部的**添加意图和槽位类型**，将意图和槽位类型添加到机器人。

1. 资源添加完毕后，会显示绿色的成功横幅。转到**意图**和**槽位类型**以编辑生成的意图和槽位类型，并添加更多值。

1. 如果**生成的意图**和**生成的槽位类型**大多不适用于要创建的机器人，请执行以下步骤。

   1. 在**描述性机器人生成器详细信息**部分中选择**新生成**。

   1. 重写提示并选择**重新生成**以生成新的意图和槽位类型。如果您使用不同的模型，结果会有所不同。
**重要**  
不能保证会生成相同的意图和槽位。每次重新生成意图和槽位类型时都要收费。

------
#### [ API ]

**使用自然语言描述创建机器人**

当通过 API 使用描述性机器人生成器时，它会在 Amazon S3 存储桶中的 .zip 文件中创建机器人定义。您下载此文件并将机器人定义导入 Amazon Lex V2 以创建机器人。

1. 发送创建新机器人的[CreateBot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBot.html)请求。然后发送[CreateBotLocale](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBotLocale.html)请求为机器人创建语言环境。

1. 发送[StartBotResourceGeneration](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartBotResourceGeneration.html)请求，指定机器人的 ID、版本和区域设置。您可以使用 `DRAFT` 作为机器人版本。在 `generationInputPrompt` 字段中提供提示。您的描述应既*详细* 又*准确*，以帮助为机器人生成适当和充分的意图。包括一份改进意图创建过程的操作列表。

1. 记下响应中的 `generationId`。

1. 使用`generationId`您在回复中收到的发送[DescribeBotResourceGeneration](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeBotResourceGeneration.html)`StartBotResourceGeneration`请求。包括机器人 ID、版本和区域设置。

1. 如果 `DescribeBotResourceGeneration` 响应中的 `generationStatus` 是 `Complete`，则也将填充 `generatedBotLocaleUrl` 字段。按照[下载对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html)中的步骤，使用此 Amazon S3 URI 下载机器人定义。

**检查生成的机器人定义并将其导入**

1. 按照[下载对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html)中的步骤，使用 `DescribeBotResourceGeneration` 响应的 `generationStatus` 中的 Amazon S3 URI 下载机器人定义。

1. 您可以通过编辑文件，根据机器人的特定使用案例直接修改生成的内容。您也可以发送另一个 `StartBotResourceGeneration` 请求来重新生成意图和槽位。
**重要**  
不能保证会生成相同的意图和槽位。每次重新生成意图和槽位类型时都要收费。

1. 要导入机器人定义，请按照[在 Lex V2 中导入机器人](import.md)中的步骤操作。

1. 导入后，您可以使用、和[UpdateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlotType.html)操作修改生成的意图和插槽。[UpdateIntent[UpdateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateSlot.html)](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html)

要列出有关机器人区域设置的所有生成项目的元数据，请使用[ListBotResourceGenerations](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBotResourceGenerations.html)操作。使用 `DescribeBotResourcGeneration` 请求中任何返回的 `generationId` 值来检索已生成机器人定义的 Amazon S3 URI。

------

**Topics**
+ [

# 用于描述性机器人生成器的机器人描述示例
](nld-examples.md)
+ [

# 在 Lex V2 中使用自然语言描述创建机器人时所需的权限
](nld-permissions.md)

# 用于描述性机器人生成器的机器人描述示例
<a name="nld-examples"></a>

以下是一些有用的机器人描述示例，您可以在 Amazon Lex V2 中用于描述性机器人生成器。


| 行业 | 提示示例 | 
| --- | --- | 
| 金融服务 | 我们提供金融卡服务，帮助用户在收到新卡时执行一些任务，例如激活卡、通过电子邮件或邮寄方式发送 PIN 码、验证新卡（使用邮政编码）。我们还帮助他们完成与现有信用卡相关的任务，例如查询信用卡优惠、挂失、申请新卡、重置卡 PIN 码或支付账单。 | 
| 餐饮服务 | 我想要一个机器人来帮助顾客订餐（使用商品 ID、数量、尺寸）、查看订单状态和取消订单。使用订单 ID 编制订单索引。 | 
| 航空公司 | 我们是一个航空公司域，可帮助用户预订机票、查看预订详情、获取已预订航班的收据、查询航班状态、重新安排预订的航班、获取航班详情以及取消预订的航班。如果其他意图有助于支持域描述中的函数，也可以生成这些意图。 | 
| 保险 | 目标：我们是一家销售汽车、房屋和年金保单的保险公司。我想要一个可以查看索赔状态、提出索赔、支付保单和取消保单的机器人。我们使用 policy\$1id 和 SSN 的后 4 个来识别和验证账户。我希望机器人至少有以下意图和时段：身份验证-policy\$1id，last4 SSNpolicy 类型：汽车、房屋、年金保单状态：查看余额、支票到期日、支票承保范围付款：一次性付款、分期付款、金额 | 
| 车辆管理 | 我们正在构建一个“拖车查询”机器人，帮助城市中汽车被拖走的驾驶员查找汽车的位置。该机器人应询问汽车被拖出的地址或位置，以及有关车辆的详细信息，如车牌、汽车品牌、车型和制造年份。该机器人应回复拖车停车场的位置和营业时间。 | 
| 旅行 | 我是一家旅行社，我想要机器人帮我的顾客预订迪士尼之旅。迪士尼在世界各地有多个园区可供选择，还有酒店、餐饮和特殊娱乐设施可供预订。该机器人的用户应能够修改或取消预订。预订必须至少包括园区、日期和酒店。餐饮或娱乐项目为可选项，可稍后添加或更改。 | 

# 在 Lex V2 中使用自然语言描述创建机器人时所需的权限
<a name="nld-permissions"></a>
+ 要在 Amazon Lex V2 控制台上访问该功能，请确保您的控制台角色具有 `bedrock:ListFoundationModels` 和 `bedrock:ListInferenceProfiles` 权限。
+ 与机器人关联的 IAM 角色应具有 `bedrock:InvokeModel` 权限。在 Amazon Lex 控制台中启用该功能时，只要您的机器人使用的是由 Amazon Lex 生成的服务相关角色，该策略就会自动添加到机器人角色中。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "bedrock:InvokeModel"
              ],
              "Resource": [
                  "arn:aws:bedrock:us-east-1::foundation-model/model-id"
              ]
          }
      ]
  }
  ```

------