2017-08-22 2 views
0

Wenn put_intent unter Verwendung einer vorhandenen Absicht zu aktualisieren, stelle ich die Prüfsumme auf diese Weise:Amazon Lex API Prüfsummenfehler

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

und dann die Prüfsumme verwenden, um mit put_intent:

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

Die Ausnahme geworfen ist:

botocore.errorfactory.BadRequestException: Bei der Kalibrierung ist ein Fehler aufgetreten (BadRequestException) Ling die PutIntent-Operation: Die Erfüllung gilt nicht für Absicht 'TotalWasteForItem'. Geben Sie eine andere Erfüllung an.

Absicht hat nicht mehrere Versionen, '$LATEST' ist der einzige. Prüfsumme wird normal zurückgegeben und ist vom Typ str.

Antwort

1

put_intent erfordert die fulfillmentActivity übergeben werden:

fulfillmentActivity (dict) - Beschreibt, wie die Absicht erfüllt ist. Wenn beispielsweise ein Benutzer alle Informationen für eine Pizza-Bestellung bereitstellt, definiert fulfillmentActivity, wie der Bot eine Bestellung bei einem lokalen Pizzaladen platziert.

Sie können Amazon Lex so konfigurieren, dass alle Intent-Informationen an die Clientanwendung zurückgegeben werden, oder eine Lambda-Funktion aufrufen, die die Absicht verarbeiten kann (z. B. eine Bestellung bei einer Pizzeria).

Typ (string) - [erforderlich] Wie die Absicht erfüllt werden soll, entweder durch eine Lambda-Funktion ausgeführt wird oder durch die Schlitzdaten an die Clientanwendung zurück.

...

Sie können diese einfach Reaktion mit den Parametern zur Verfügung zu stellen. Dies ist gut zum Testen.

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

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

Verwandte Themen