PutIntent - Amazon Lex versione 1

Se utilizzi Amazon Lex V2, consulta invece la guida Amazon Lex V2.

 

Se utilizzi Amazon Lex V1, ti consigliamo di aggiornare i bot ad Amazon Lex V2. Non stiamo più aggiungendo nuove funzionalità alla V1 e consigliamo vivamente di utilizzare la V2 per tutti i nuovi bot.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

PutIntent

Crea un intento o sostituisce un intento esistente.

Per definire l'interazione tra l'utente e il bot, si utilizzano uno o più intenti. Per un bot che ordina pizze, ad esempio, dovresti creare un OrderPizza intento.

Per creare un intento o sostituire un intento esistente, devi fornire quanto segue:

  • Nome dell'intento. Ad esempio, OrderPizza.

  • Esempi di enunciati. Ad esempio, «Posso ordinare una pizza, per favore». e «Voglio ordinare una pizza».

  • Informazioni da raccogliere. Specificate i tipi di slot per le informazioni che il bot richiederà all'utente. È possibile specificare tipi di slot standard, come una data o un'ora, o tipi di slot personalizzati come la dimensione e la crosta di una pizza.

  • Come verrà realizzato l'intento. È possibile fornire una funzione Lambda o configurare l'intento di restituire le informazioni sull'intento all'applicazione client. Se usi una funzione Lambda, quando tutte le informazioni sull'intento sono disponibili, Amazon Lex richiama la tua funzione Lambda. Se configuri l'intenzione di restituire le informazioni sull'intento all'applicazione client.

È possibile specificare altre informazioni opzionali nella richiesta, ad esempio:

  • Una richiesta di conferma per chiedere all'utente di confermare un'intenzione. Ad esempio, «Devo ordinare la tua pizza?»

  • Una dichiarazione conclusiva da inviare all'utente dopo che l'intento è stato raggiunto. Ad esempio, «Ho ordinato la tua pizza».

  • Una richiesta di follow-up che richiede all'utente attività aggiuntive. Ad esempio, chiedendo «Vuoi ordinare qualcosa da bere con la tua pizza?»

Se specifichi un nome di intento esistente per aggiornare l'intento, Amazon Lex sostituisce i valori nella $LATEST versione dell'intento con i valori nella richiesta. Amazon Lex rimuove i campi che non fornisci nella richiesta. Se non specifichi i campi obbligatori, Amazon Lex genera un'eccezione. Quando aggiorni la $LATEST versione di un intento, il status campo di qualsiasi bot che utilizza la $LATEST versione dell'intento viene impostato su. NOT_BUILT

Per ulteriori informazioni, consulta Amazon Lex: come funziona: come funziona.

Questa operazione richiede le autorizzazioni per l'operazione lex:PutIntent.

Sintassi della richiesta

PUT /intents/name/versions/$LATEST HTTP/1.1 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ] }

Parametri della richiesta URI

La richiesta utilizza i seguenti parametri URI.

name

Il nome dell'intento. Il nome non fa distinzione tra maiuscole e minuscole.

Il nome non può corrispondere a un nome di intento incorporato o a un nome di intento integrato con «AMAZON». rimosso. Ad esempio, poiché esiste un intento integrato chiamatoAMAZON.HelpIntent, non è possibile creare un intento personalizzato chiamato. HelpIntent

Per un elenco di intenti incorporati, consulta la sezione relativa agli intenti incorporati standard in Alexa Skills Kit.

Limitazioni di lunghezza: lunghezza minima pari a 1. Lunghezza massima di 100.

Modello: ^([A-Za-z]_?)+$

Campo obbligatorio: sì

Corpo della richiesta

La richiesta accetta i seguenti dati in formato JSON.

checksum

Identifica una revisione specifica della versione. $LATEST

Quando crei un nuovo intento, lascia il checksum campo vuoto. Se si specifica un checksum si ottiene un'BadRequestExceptioneccezione.

Quando desideri aggiornare un intento, imposta il checksum campo sul checksum della revisione più recente della versione. $LATEST Se non specifichi il checksum campo o se il checksum non corrisponde alla $LATEST versione, ottieni un'eccezione. PreconditionFailedException

▬Tipo: stringa

Campo obbligatorio: no

conclusionStatement

L'istruzione che desideri che Amazon Lex trasmetta all'utente dopo che l'intento è stato soddisfatto con successo dalla funzione Lambda.

Questo elemento è rilevante solo se si fornisce una funzione Lambda in. fulfillmentActivity Se restituisci l'intento all'applicazione client, non puoi specificare questo elemento.

Nota

I followUpPrompt e si conclusionStatement escludono a vicenda. È possibile specificarne solo uno.

Tipo: oggetto Statement

Campo obbligatorio: no

confirmationPrompt

Richiede all'utente di confermare l'intento. Questa domanda dovrebbe avere una risposta sì o no.

Amazon Lex utilizza questo prompt per garantire che l'utente riconosca che l'intento è pronto per l'adempimento. Ad esempio, con l'OrderPizzaintento, potresti voler confermare che l'ordine è corretto prima di effettuarlo. Per altri scopi, ad esempio intenti a rispondere semplicemente alle domande degli utenti, potrebbe non essere necessario chiedere conferma all'utente prima di fornire le informazioni.

Nota

È necessario fornire sia il che il rejectionStatementconfirmationPrompt, oppure nessuno dei due.

Tipo: oggetto Prompt

Campo obbligatorio: no

createVersion

Se impostato su true una nuova versione numerata dell'intento, viene creata. È lo stesso che chiamare l'CreateIntentVersionoperazione. Se non si specificacreateVersion, l'impostazione predefinita èfalse.

Tipo: Booleano

Campo obbligatorio: no

description

Una descrizione dell'intento.

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima di 0. Lunghezza massima di 200.

Campo obbligatorio: no

dialogCodeHook

Specifica una funzione Lambda da richiamare per ogni input dell'utente. È possibile richiamare questa funzione Lambda per personalizzare l'interazione dell'utente.

Ad esempio, supponiamo che il bot determini che l'utente è John. La tua funzione Lambda potrebbe recuperare le informazioni di John da un database di backend e precompilare alcuni valori. Ad esempio, se scopri che John è intollerante al glutine, puoi impostare lo slot di intenti corrispondente, su true. GlutenIntolerant Potresti trovare il numero di telefono di John e impostare l'attributo di sessione corrispondente.

Tipo: oggetto CodeHook

Campo obbligatorio: no

followUpPrompt

Amazon Lex utilizza questo prompt per sollecitare attività aggiuntive dopo aver soddisfatto un intento. Ad esempio, una volta raggiunto l'OrderPizzaintento, potresti richiedere all'utente di ordinare un drink.

L'azione intrapresa da Amazon Lex dipende dalla risposta dell'utente, come segue:

  • Se l'utente dice «Sì», risponde con la richiesta di chiarimento configurata per il bot.

  • se l'utente dice «Sì» e continua con un'espressione che fa scattare un intento, avvia una conversazione sull'intento.

  • Se l'utente dice «No», risponde con la dichiarazione di rifiuto configurata per la richiesta di follow-up.

  • Se non riconosce l'enunciato, ripete nuovamente la richiesta di follow-up.

Il followUpPrompt campo e il campo si escludono a conclusionStatement vicenda. È possibile specificarne solo uno.

Tipo: oggetto FollowUpPrompt

Campo obbligatorio: no

fulfillmentActivity

Obbligatorio. Descrive come viene soddisfatto l'intento. Ad esempio, dopo che un utente ha fornito tutte le informazioni per un ordine di pizza, fulfillmentActivity definisce in che modo il bot effettua un ordine presso una pizzeria locale.

Puoi configurare Amazon Lex per restituire tutte le informazioni sull'intento all'applicazione client o indirizzarla a richiamare una funzione Lambda in grado di elaborare l'intento (ad esempio, effettuare un ordine presso una pizzeria).

Tipo: oggetto FulfillmentActivity

Campo obbligatorio: no

inputContexts

Una serie di InputContext oggetti che elenca i contesti che devono essere attivi affinché Amazon Lex possa scegliere l'intento in una conversazione con l'utente.

Tipo: matrice di oggetti InputContext

Membri dell'array: numero minimo di 0 elementi. Numero massimo 5 elementi.

Campo obbligatorio: no

kendraConfiguration

Informazioni di configurazione necessarie per utilizzare l'AMAZON.KendraSearchIntentintento di connessione a un indice Amazon Kendra. Per ulteriori informazioni, consulta AMAZON. KendraSearchIntent.

Tipo: oggetto KendraConfiguration

Campo obbligatorio: no

outputContexts

Una serie di OutputContext oggetti che elenca i contesti che l'intento attiva quando l'intento viene soddisfatto.

Tipo: matrice di oggetti OutputContext

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 10 elementi.

Campo obbligatorio: no

parentIntentSignature

Un identificativo univoco dell'intento integrato su cui basare questo intento. Per trovare la firma di un intento, consulta Standard Built-in Intents nell'Alexa Skills Kit.

▬Tipo: stringa

Campo obbligatorio: no

rejectionStatement

Quando l'utente risponde «no» alla domanda definita inconfirmationPrompt, Amazon Lex risponde con questa dichiarazione per confermare che l'intento è stato annullato.

Nota

Devi fornire sia il che il, oppure nessuno rejectionStatement dei confirmationPrompt due.

Tipo: oggetto Statement

Campo obbligatorio: no

sampleUtterances

Una serie di enunciati (stringhe) che un utente potrebbe pronunciare per segnalare l'intento. Ad esempio, «I want {PizzaSize} pizza», «Order {Quantity} {PizzaSize} pizze».

In ogni enunciato, il nome di uno slot è racchiuso tra parentesi graffe.

Tipo: matrice di stringhe

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 1500 articoli.

Limitazioni di lunghezza: lunghezza minima pari a 1. Lunghezza massima di 200.

Campo obbligatorio: no

slots

Una serie di slot di intenti. In fase di esecuzione, Amazon Lex richiede all'utente i valori degli slot richiesti utilizzando i prompt definiti negli slot. Per ulteriori informazioni, consulta Amazon Lex: come funziona: come funziona.

Tipo: matrice di oggetti Slot

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 100 elementi.

Campo obbligatorio: no

Sintassi della risposta

HTTP/1.1 200 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "createdDate": number, "createVersion": boolean, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "inputContexts": [ { "name": "string" } ], "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "role": "string" }, "lastUpdatedDate": number, "name": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "defaultValueSpec": { "defaultValueList": [ { "defaultValue": "string" } ] }, "description": "string", "name": "string", "obfuscationSetting": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string", "groupNumber": number } ], "responseCard": "string" } } ], "version": "string" }

Elementi di risposta

Se l'operazione riesce, il servizio restituisce una risposta HTTP 200.

I dati seguenti vengono restituiti in formato JSON mediante il servizio.

checksum

Checksum della $LATEST versione dell'intento creata o aggiornata.

▬Tipo: stringa

conclusionStatement

Dopo che la funzione Lambda specificata nell'fulfillmentActivityintento soddisfa l'intento, Amazon Lex trasmette questa dichiarazione all'utente.

Tipo: oggetto Statement

confirmationPrompt

Se definito nell'intento, Amazon Lex richiede all'utente di confermare l'intento prima di realizzarlo.

Tipo: oggetto Prompt

createdDate

La data in cui è stato creato l'intento.

Tipo: Timestamp

createVersion

Truese è stata creata una nuova versione dell'intento. Se il createVersion campo non è stato specificato nella richiesta, il createVersion campo è impostato su false nella risposta.

Tipo: Booleano

description

Una descrizione dell'intento.

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima di 0. Lunghezza massima di 200.

dialogCodeHook

Se definita nell'intento, Amazon Lex richiama questa funzione Lambda per ogni input dell'utente.

Tipo: oggetto CodeHook

followUpPrompt

Se definito nell'intento, Amazon Lex utilizza questo prompt per sollecitare ulteriori attività dell'utente dopo il raggiungimento dell'intento.

Tipo: oggetto FollowUpPrompt

fulfillmentActivity

Se definita nell'intento, Amazon Lex richiama questa funzione Lambda per soddisfare l'intento dopo che l'utente ha fornito tutte le informazioni richieste dall'intento.

Tipo: oggetto FulfillmentActivity

inputContexts

Una serie di InputContext oggetti che elenca i contesti che devono essere attivi affinché Amazon Lex possa scegliere l'intento in una conversazione con l'utente.

Tipo: matrice di oggetti InputContext

Membri dell'array: numero minimo di 0 elementi. Numero massimo 5 elementi.

kendraConfiguration

Informazioni di configurazione, se presenti, necessarie per connettersi a un indice Amazon Kendra e utilizzare l'intento. AMAZON.KendraSearchIntent

Tipo: oggetto KendraConfiguration

lastUpdatedDate

La data in cui l'intento è stato aggiornato. Quando crei una risorsa, la data di creazione e le date dell'ultimo aggiornamento coincidono.

Tipo: Timestamp

name

Il nome dell'intento.

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima pari a 1. Lunghezza massima di 100.

Modello: ^([A-Za-z]_?)+$

outputContexts

Una matrice di OutputContext oggetti che elenca i contesti che l'intento attiva quando l'intento viene soddisfatto.

Tipo: matrice di oggetti OutputContext

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 10 elementi.

parentIntentSignature

Un identificatore univoco per l'intento incorporato su cui si basa questo intento.

▬Tipo: stringa

rejectionStatement

Se l'utente risponde «no» alla domanda definita in confirmationPrompt Amazon Lex, risponde con questa dichiarazione per confermare che l'intento è stato annullato.

Tipo: oggetto Statement

sampleUtterances

Una serie di espressioni di esempio configurate per l'intento.

Tipo: matrice di stringhe

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 1500 elementi.

Limitazioni di lunghezza: lunghezza minima pari a 1. Lunghezza massima di 200.

slots

Una serie di slot di intento configurati per l'intento.

Tipo: matrice di oggetti Slot

Membri dell'array: numero minimo di 0 elementi. Numero massimo di 100 elementi.

version

La versione dell'intento. Per un nuovo intento, la versione è sempre. $LATEST

▬Tipo: stringa

Limitazioni di lunghezza: lunghezza minima pari a 1. La lunghezza massima è 64 caratteri.

Modello: \$LATEST|[0-9]+

Errori

BadRequestException

La richiesta non è ben formulata. Ad esempio, un valore non è valido o manca un campo obbligatorio. Controlla i valori del campo e riprova.

Codice di stato HTTP: 400

ConflictException

Si è verificato un conflitto nell'elaborazione della richiesta. Riprova la richiesta.

Codice di stato HTTP: 409

InternalFailureException

Si è verificato un errore interno di Amazon Lex. Riprova la richiesta.

Codice di stato HTTP: 500

LimitExceededException

La richiesta ha superato il limite. Riprova la richiesta.

Codice di stato HTTP: 429

PreconditionFailedException

Il checksum della risorsa che stai tentando di modificare non corrisponde al checksum della richiesta. Controlla il checksum della risorsa e riprova.

Codice di stato HTTP: 412

Vedi anche

Per ulteriori informazioni sull'utilizzo di questa API in uno degli AWS SDK specifici della lingua, consulta quanto segue: