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à.
Migrazione di una funzione Lambda da Amazon Lex V1 ad Amazon Lex V2
Amazon Lex V2 consente una sola funzione Lambda per ogni lingua in un bot. La funzione Lambda e le relative impostazioni sono configurate per l'alias bot utilizzato in fase di esecuzione.
La funzione Lambda viene richiamata a tutti gli effetti in quella lingua se i dialoghi e gli hook del codice di adempimento sono abilitati a tal fine.
Le funzioni Amazon Lex V2 Lambda hanno un formato di messaggio di input e output diverso da quello di Amazon Lex V1. Queste sono le differenze nel formato di input della funzione Lambda.
-
Amazon Lex V2 sostituisce le
alternativeIntents
strutturecurrentIntent
e con lainterpretations
struttura. Ogni interpretazione contiene un intento, il punteggio di confidenza NLU per l'intento e un'analisi opzionale del sentiment. -
Amazon Lex V2 sposta il
activeContexts
,sessionAttributes
in Amazon Lex V1 allasessionState
struttura unificata. Questa struttura fornisce informazioni sullo stato corrente della conversazione, incluso l'ID della richiesta di origine. -
Amazon Lex V2 non restituisce il
recentIntentSummaryView
. Utilizza invece le informazioni nellasessionState
struttura. -
L'ingresso Amazon Lex V2 fornisce l'
botId
elocaleId
nell'bot
attributo. -
La struttura di input contiene un
inputMode
attributo che fornisce informazioni sul tipo di input: testo, voce o DTMF.
Queste sono le differenze nel formato di output della funzione Lambda:
-
sessionAttributes
Le struttureactiveContexts
e in Amazon Lex V1 vengono sostituite dallasessionState
struttura in Amazon Lex V2. -
recentIntentSummaryView
Non è incluso nell'output. -
La
dialogAction
struttura di Amazon Lex V1 è suddivisa in due strutture,dialogAction
che fanno parte dellasessionState
struttura emessages
che sono necessarie quando lodialogAction.type
èElicitIntent
. Amazon Lex sceglie i messaggi da questa struttura da mostrare all'utente.
Quando crei un bot con le API Amazon Lex V2, esiste solo una funzione Lambda per alias bot per lingua anziché una funzione Lambda per ogni intento. Se si desidera continuare a utilizzare funzioni separate, è possibile creare una funzione router che attiva una funzione separata per ogni intento. Di seguito è riportata una funzione del router che è possibile utilizzare o modificare per l'applicazione.
import os import json import boto3 # reuse client connection as global client = boto3.client('lambda') def router(event): intent_name = event['sessionState']['intent']['name'] fn_name = os.environ.get(intent_name) print(f"Intent: {intent_name} -> Lambda: {fn_name}") if (fn_name): # invoke lambda and return result invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event)) print(invoke_response) payload = json.load(invoke_response['Payload']) return payload raise Exception('No environment variable for intent: ' + intent_name) def lambda_handler(event, context): print(event) response = router(event) return response
Elenco dei campi aggiornati
Le tabelle seguenti forniscono informazioni dettagliate sui campi aggiornati nella richiesta e nella risposta di Amazon Lex V2 Lambda. È possibile utilizzare queste tabelle per mappare i campi tra le versioni.
Richiesta
I seguenti campi sono stati aggiornati nel formato di richiesta della funzione Lambda.
Contesti attivi
LaactiveContexts
struttura ora fa parte dellasessionState
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Contesti attivi |
SessionState.ActiveContexts |
Contesti attivi [*]. timeToLive |
SessionState.ActiveContexts [*]. timeToLive |
Contesti attivi [*]. timeToLive. timeToLiveInSeconds |
SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds |
Contesti attivi [*]. timeToLive. turnsToLive |
SessionState.ActiveContexts [*]. timeToLive. turnsToLive |
ActiveContexts [*] .name |
SessionState.ActiveContexts [*] .name |
ActiveContexts [*] .parametri |
SessionState.ActiveContexts [*] .contextAttributes |
Intenti alternativi
L'elenco delle interpretazioni dall'indice 1 a N contiene l'elenco degli intenti alternativi previsti da Amazon Lex V2, insieme ai relativi punteggi di confidenza. recentIntentSummaryView
Viene rimosso dalla struttura delle richieste in Amazon Lex V2. Per visualizzare i dettagli direcentIntentSummaryView
, utilizzare l'GetSessionoperazione.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Intenti alternativi |
interpretazioni [1: *] |
recentIntentSummaryVisualizza |
N/D |
Bot
In Amazon Lex V2, i bot e gli alias dispongono di identificatori. L'ID bot fa parte dell'input del codehook. L'ID alias è incluso, ma non il nome dell'alias. Amazon Lex V2 supporta più impostazioni locali per lo stesso bot, quindi l'ID locale è incluso.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
bot |
bot |
nome del bot |
nome del bot |
N/D |
bot.id |
bot. alias |
N/D |
N/D |
BOT. alias ID |
versione bot |
versione bot |
N/D |
ID locale bot. |
Intento attuale
LasessionState.intent
struttura contiene i dettagli dell'intento attivo. Amazon Lex V2 restituisce anche un elenco di tutti gli intenti, inclusi gli intenti alternativi, nellainterpretations
struttura. Il primo elemento nell'elenco delle interpretazioni è sempre lo stesso disessionState.intent
.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
currentIntent |
SessionState.intent OR interpretazioni [0] .intent |
Nome dell'intento corrente |
SessionState.intent.name OR interpretazioni [0] .intent.name |
currentIntent. nluConfidenceScore |
interpretazioni [0] .nluConfidence.score |
Azione di dialogo
IlconfirmationStatus
campo fa ora parte dellasessionState
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Intenzione corrente. Stato di conferma |
SessionState.Intent.confirmationState OR interpretazioni [0] .intent.confirmationState |
N/D |
SessionState.intent.state OR interpretazioni [*] .intent.state |
Amazon Kendra
IlkendraResponse
campo fa ora parte delleinterpretations
strutturesessionState
del terreno.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
kendraResponse |
SessionState.Intent.KendraResponse OR interpretazioni [0] .intent.KendraResponse |
Sentimento
LasentimentResponse
struttura viene spostata nella nuovainterpretations
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
sentimentResponse |
interpretazioni [0] .sentimentResponse |
SentimentResponse.SentimentLabel |
interpretazioni [0] .sentimentResponse.sentiment |
Risposta sentimentale. SentimentScore |
interpretazioni [0] .sentimentResponse.sentimentScore |
Slot
Amazon Lex V2 fornisce un singoloslots
oggetto all'interno dellasessionState.intent
struttura che contiene i valori risolti, il valore interpretato e il valore originale di ciò che l'utente ha detto. Amazon Lex V2 supporta anche slot multivalore impostando l'slotShape
asList
e impostando l'values
elenco. Gli slot a valore singolo sono supportati dalvalue
campo, si presume che la loro forma siaScalar
.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Slot per intenzioni correnti |
SessionState.intent.slots OR interpretazioni [0] .intent.slots |
CurrentIntent.slots [*] .valore |
SessionState.Intent.slots [*] .value.InterpretedValue OR interpretazioni [0] .intent.slots [*] .value.InterpretedValue |
N/D |
SessionState.intent.slots [*] .value.shape OR interpretazioni [0] .intent.slots [*] .shape |
N/D |
SessionState.intent.slots [*] .valori OR interpretazioni [0] .intent.slots [*] .values |
Dettagli dello slot CurrentIntent.Slot |
SessionState.intent.slots OR interpretazioni [0] .intent.slots |
CurrentIntent.SlotDetails [*] .risoluzioni |
SessionState.Intent.slots [*] .Valori risolti O interpretazioni [0] .intent.slots [*] .ResolvedValues |
CurrentIntent.SlotDetails [*] .Valore originale |
SessionState.Intent.slots [*] .originalValue OR interpretazioni [0] .intent.slots [*] .originalValue |
Altri
IlsessionId
campo Amazon Lex V2 è lo stessouserId
di Amazon Lex V1. Amazon Lex V2 invia anche ilinputMode
codice del chiamante: testo, DTMF o voce.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
userId |
sessionId |
inputTranscript |
inputTranscript |
invocationSource |
invocationSource |
outputDialogMode |
responseContentType |
messageVersion |
messageVersion |
sessionAttributes |
SessionState.SessionAttributi |
requestAttributes |
requestAttributes |
N/D |
Modalità di ingresso |
N/D |
originatingRequestId |
Risposta
I seguenti campi sono stati modificati nel formato del messaggio di risposta della funzione Lambda.
Contesti attivi
LaactiveContexts
struttura si è spostata nellasessionState
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Contesti attivi |
SessionState.ActiveContexts |
Contesti attivi [*]. timeToLive |
SessionState.ActiveContexts [*]. timeToLive |
Contesti attivi [*]. timeToLive. timeToLiveInSeconds |
SessionState.ActiveContexts [*]. timeToLive. timeToLiveInSeconds |
Contesti attivi [*]. timeToLive. turnsToLive |
SessionState.ActiveContexts [*]. timeToLive. turnsToLive |
ActiveContexts [*] .name |
SessionState.ActiveContexts [*] .name |
ActiveContexts [*] .parametri |
SessionState.ActiveContexts [*] .contextAttributes |
Azione di dialogo
LadialogAction
struttura si è spostata nellasessionState
struttura. È ora possibile specificare più messaggi in un'azione di dialogo e lagenericAttachments
struttura è ora laimageResponseCard
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
dialogAction |
SessionState.DialogAction |
Azione di dialogo. Tipo |
SessionState.DialogAction.Type |
dialogAction. slotToElicit |
SessionState.Intent.DialogAction. slotToElicit |
DialogAction.Type.FulfillmentState |
SessionState.Intent.State |
Azione di dialogo. Messaggio |
messaggi |
DialogAction.Message.ContentType |
messaggi [*] .contentType |
DialogAction.Message.Content |
messaggi [*] .content |
DialogAction.ResponseCard |
messaggi [*]. imageResponseCard |
DialogAction.ResponseCard.Version |
N/D |
DialogAction.ResponseCard.ContentType |
messaggi [*] .contentType |
DialogAction.ResponseCard.Allegati generici |
N/D |
DialogAction.ResponseCard.Allegati generici [*] .titolo |
messaggi [*]. imageResponseCard.titolo |
DialogAction.ResponseCard.Allegati generici [*] .sottotitolo |
messaggi [*]. imageResponseCard.sottotitolo |
DialogAction.ResponseCard.Allegati generici [*] .imageURL |
messaggi [*]. imageResponseCard.URL imageUrl |
DialogAction.ResponseCard.Allegati generici [*] .pulsanti |
messaggi [*]. imageResponseCard.pulsanti |
DialogAction.ResponseCard.GenericAttachments [*] .value |
messaggi [*]. imageResponseCard.pulsanti [*] .valore |
DialogAction.ResponseCard.Allegati generici [*] .pulsanti [*] .testo |
messaggi [*]. imageResponseCard.pulsanti [*] .testo |
dialogAction. kendraQueryRequestCarico utile |
dialogAction. kendraQueryRequestCarico utile |
dialogAction. kendraQueryFilterCorda |
dialogAction. kendraQueryFilterCorda |
Intenti e slot di evento
I campi di intento e di slot che facevano parte delladialogAction
struttura ora fanno parte dellasessionState
struttura.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
Azione di dialogo. IntentName |
SessionState.Intent.Name |
Azione di dialogo. Slot |
SessionState.Intent.Slots |
DialogAction.Slots [*] .tasto |
SessionState.Intent.Slots [*] .key |
DialogAction.slots [*] .valore |
SessionState.Intent.Slots [*] .value.Valore interpretato |
N/D |
SessionState.Intent.Slots [*] .value.shape |
N/D |
SessionState.Intent.slots [*] .valori |
Altri
LasessionAttributes
struttura ora fa parte dellasessionState
struttura. LarecentIntentSummaryReview
struttura è stata eliminata.
Struttura del sistema V1 | Struttura del sistema V2 |
---|---|
sessionAttributes |
SessionState.SessionAttributi |
recentIntentSummaryVisualizza |
N/D |