0

put_intent用于更新现有意图时,我以这种方式提供校验和:

checksum = lex_client.get_intent(name=intent_name, version='$LATEST')['checksum']

然后使用校验和put_intent

lex_client.put_intent(
        name=name,
        slots=slots,
        sampleUtterances=utterances,
        checksum=checksum
    )

抛出的异常是:

botocore.errorfactory.BadRequestException:调用 PutIntent 操作时发生错误 (BadRequestException):实现对意图“TotalWasteForItem”无效。指定另一个填充。

Intent 没有多个版本,'$LATEST'是唯一的一个。校验和正常返回,类型为str.

4

1 回答 1

2

put_intent需要fulfillmentActivity通过:

fulfillActivity (dict) -- 描述意图是如何实现的。例如,在用户提供披萨订单的所有信息后,fulfillmentActivity 定义机器人如何向当地披萨店下订单。

您可以将 Amazon Lex 配置为将所有意图信息返回给客户端应用程序,或指示它调用可以处理该意图的 Lambda 函数(例如,向比萨店下订单)。

type (string) -- [必需] 如何通过运行 Lambda 函数或通过将槽数据返回到客户端应用程序来实现意图。

...

您可以提供此参数以简单地响应参数。这有利于测试。

fulfillmentActivity={'type': 'ReturnIntent'},

http://boto3.readthedocs.io/en/latest/reference/services/lex-models.html#LexModelBuildingService.Client.put_intent

于 2017-08-22T20:01:11.080 回答