Migrazione di una funzione Lambda da Amazon Lex V1 ad Amazon Lex V2 - 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à.

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 lealternativeIntents 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 ilactiveContexts,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 ilrecentIntentSummaryView. Utilizza invece le informazioni nellasessionState struttura.

  • L'ingresso Amazon Lex V2 fornisce l'botIdelocaleId nell'botattributo.

  • La struttura di input contiene uninputMode attributo che fornisce informazioni sul tipo di input: testo, voce o DTMF.

Queste sono le differenze nel formato di output della funzione Lambda:

  • sessionAttributesLe struttureactiveContexts e in Amazon Lex V1 vengono sostituite dallasessionState struttura in Amazon Lex V2.

  • recentIntentSummaryViewNon è incluso nell'output.

  • LadialogAction 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. recentIntentSummaryViewViene 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'slotShapeasList e impostando l'valueselenco. 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