2017-08-22 2 views
0

Lorsque vous utilisez put_intent de mettre à jour une intention existante, je fournir la somme de contrôle de cette façon:checksum error Amazon API Lex

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

puis utiliser la somme de contrôle avec put_intent:

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

Exception levée est:

botocore.errorfactory.BadRequestException: une erreur s'est produite (BadRequestException) lorsque cal l'opération PutIntent: l'exécution n'est pas valide pour l'intention 'TotalWasteForItem'. Indiquez un autre remplissage.

L'intention n'a pas plusieurs versions, '$LATEST' est la seule. Checksum est retourné normalement et est de type str.

Répondre

1

put_intent nécessite l'fulfillmentActivity être passé:

fulfillmentActivity (dict) - Décrit comment l'intention est remplie. Par exemple, après qu'un utilisateur fournit toutes les informations pour une commande de pizza, fulfillmentActivity définit la façon dont le bot passe une commande auprès d'une pizzeria locale.

Vous pouvez configurer Amazon Lex pour renvoyer toutes les informations d'intention à l'application cliente ou le diriger pour appeler une fonction Lambda capable de traiter l'intention (par exemple, passer une commande dans une pizzeria).

Type

(string) - [Obligatoire] Comment être rempli l'intention, soit en exécutant une fonction Lambda ou en retournant les données sous à l'application cliente.

...

Vous pouvez fournir cette réponse simplement avec les paramètres. C'est bon pour les tests.

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

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