Amazon-Lex è un servizio di intelligenza artificiale (AI) completamente gestito con modelli avanzati di linguaggio naturale per progettare, costruire, testare e distribuire interfacce conversazionali nelle applicazioni. Impiega tecnologie avanzate di deep learning per comprendere l'input dell'utente, consentendo agli sviluppatori di creare chatbot, assistenti virtuali e altre applicazioni in grado di interagire con gli utenti in linguaggio naturale.
Gestisci i tuoi bot Amazon Lex utilizzando AWS CloudFormazione ti consente di creare modelli che definiscono il bot e tutte le risorse AWS da cui dipende. AWS CloudFormation fornisce e configura tali risorse per tuo conto, eliminando il rischio di errore umano durante la distribuzione di bot in nuovi ambienti. I vantaggi derivanti dall'utilizzo di CloudFormation includono:
- Consistenza – Un modello CloudFormation fornisce un modo più coerente e automatizzato per distribuire e gestire le risorse associate a un bot Amazon Lex.
- Controllo della versione – Con AWS CloudFormation, puoi utilizzare sistemi di controllo della versione come Git per gestire i tuoi modelli CloudFormation. Ciò ti consente di mantenere diverse versioni del tuo bot e di ripristinare le versioni precedenti, se necessario.
- riutilizzabilità – Puoi riutilizzare i modelli CloudFormation in più ambienti, come sviluppo, gestione temporanea e produzione. Ciò consente di risparmiare tempo e fatica nella definizione dello stesso bot in ambienti diversi.
- Espandibilità – Man mano che il tuo bot Amazon Lex cresce in complessità, gestiscilo attraverso il Console di gestione AWS diventa più impegnativo. AWS CloudFormation consente un approccio più snello ed efficiente alla gestione della definizione e delle risorse del bot.
- Automazione – L'utilizzo di un modello CloudFormation consente di automatizzare il processo di distribuzione. Puoi utilizzare servizi AWS come AWS Code Pipeline ed AWSCodeBuild per creare, testare e distribuire automaticamente il tuo bot Amazon Lex.
In questo post ti guidiamo attraverso le fasi necessarie per creare un modello CloudFormation per un bot Amazon Lex V2.
Panoramica della soluzione
Abbiamo scelto il Scopri i viaggi bot come punto di partenza per questo esercizio. Utilizziamo un modello CloudFormation per creare un nuovo bot da zero, inclusa la definizione di intenti, slot e altri componenti richiesti. Inoltre, esploriamo argomenti come il controllo della versione, gli alias e l'integrazione AWS Lambda funzioni, creando rami condizionali e abilitando la registrazione.
Prerequisiti
Dovresti avere i seguenti prerequisiti:
- An Account AWS per creare e distribuire un modello CloudFormation
- Il necessario Gestione dell'identità e dell'accesso di AWS (SONO) permessi per distribuire AWS CloudFormation e le risorse utilizzate nel modello
- Conoscenza di base di Amazon Lex, funzioni Lambda e servizi associati
- Conoscenza di base della creazione e della distribuzione di modelli CloudFormation
Crea un ruolo IAM
Per iniziare, devi creare un ruolo IAM che verrà utilizzato dal bot. Puoi ottenere questo risultato inizializzando un modello CloudFormation e aggiungendo il ruolo IAM come risorsa. È possibile utilizzare il modello seguente per creare il ruolo. Se tu scarica il modello di esempio e distribuirlo, dovresti vedere che è stato creato un ruolo IAM. Forniamo esempi di modelli mentre esaminiamo questo post e li uniamo man mano che andiamo avanti.
Configura il bot Amazon Lex
Successivamente, è necessario aggiungere la definizione del bot. Di seguito è riportato il modello YAML per la definizione del bot Amazon Lex; costruisci i componenti necessari uno per uno:
Per creare un bot che includa solo la definizione del bot senza alcun intento, puoi utilizzare il seguente modello. Qui specifichi il nome del bot, l'ARN del ruolo che hai creato in precedenza, le impostazioni sulla privacy dei dati e altro:
Puoi scarica il modello aggiornato. La distribuzione del modello aggiornato consente di creare sia il ruolo che la definizione del bot. Nota che sei aggiornando lo stack hai creato nel passaggio precedente.
Il passaggio finale prevede la definizione di BotLocales
, che costituiscono la maggior parte delle funzionalità del bot. Ciò include, ad esempio, Intents
ed Slot types
. Quello che segue è il modello YAML:
In questo caso, costruisci il file BookHotel
intento, che richiede un tipo di slot personalizzato per i tipi di camera. Hai impostato il LocaleId
, Allora l' VoiceSettings
. Quindi aggiungi il SlotTypes
e i loro valori corrispondenti.
Il passo successivo è definire il Intents
, a partire dal primo intento, BookHotel
, che implica l'aggiunta di espressioni, slot e priorità degli slot. I dettagli di questi nodi sono illustrati nel modello fornito. Infine, aggiungi il secondo intento, ovvero the FallbackIntent
. Vedi il seguente codice:
Puoi scarica il modello CloudFormation per il lavoro svolto fino ad ora. Dopo di te aggiorna il tuo stack con questo modello verrà distribuito un bot funzionale. Nella console Amazon Lex, puoi confermare che esiste una versione bozza del bot e un alias predefinito denominato TestBotAlias
è stato creato.
Crea una nuova versione e alias del bot
Amazon Lex supporta la pubblicazione versioni di bot, intenti e tipi di slot in modo da poter controllare l'implementazione delle applicazioni client. Una versione è uno snapshot numerato della definizione del bot che puoi pubblicare per l'utilizzo in diverse parti del flusso di lavoro, ad esempio sviluppo, distribuzione beta e produzione. Supportano anche i bot di Amazon Lex alias. Un alias è un puntatore a una versione specifica di un bot. Con un alias puoi aggiornare la versione delle tue applicazioni client. Negli scenari pratici, gli alias bot vengono utilizzati per distribuzioni blu/verdi e per la gestione di configurazioni specifiche dell'ambiente come ambienti di sviluppo e produzione.
Per illustrare, supponiamo che indichi un alias alla versione 1 del tuo bot. Quando è il momento di aggiornare il bot, puoi pubblicare la versione 2 e modificare l'alias in modo che punti alla nuova versione. Poiché le tue applicazioni utilizzano l'alias anziché una versione specifica, tutti i client ricevono la nuova funzionalità senza richiedere aggiornamenti.
Tieni presente che quando modifichi il modello CloudFormation e avvii la distribuzione, le modifiche vengono implementate nella versione bozza, destinata principalmente ai test. Dopo aver completato la fase di test, puoi stabilire una nuova versione per finalizzare le modifiche che hai incorporato finora.
Successivamente, crei una nuova versione del bot basata sulla bozza, imposti un nuovo alias e colleghi la versione a questo alias. Di seguito sono riportate le due nuove risorse da aggiungere al modello:
Puoi scarica la nuova versione del modello e distribuirlo aggiornando il tuo stack. Puoi vedere sulla console Amazon Lex che una nuova versione viene creata e associata a un nuovo alias chiamato BookHotelDemoAlias
.
Quando crei una nuova versione di un bot Amazon Lex, in genere il numero di versione viene incrementato in modo sequenziale, a partire da 1. Per individuare una versione specifica, puoi fare riferimento alla sua descrizione.
Aggiungi una funzione Lambda
Per inizializzare valori o convalidare l'input dell'utente per il tuo bot, puoi aggiungere una funzione Lambda come hook di codice al tuo bot. Allo stesso modo, puoi utilizzare una funzione Lambda anche per l'adempimento, ad esempio scrivendo dati su database o chiamando API per salvare le informazioni raccolte. Per ulteriori informazioni, fare riferimento a Abilitazione della logica personalizzata con le funzioni AWS Lambda.
Aggiungiamo una nuova risorsa per la funzione Lambda al modello CloudFormation. Sebbene in genere non sia consigliabile incorporare il codice nei modelli CloudFormation, lo facciamo qui esclusivamente allo scopo di rendere meno complicata la distribuzione della demo. Vedere il seguente codice:
Per utilizzare questa funzione Lambda per l'adempimento, abilita le impostazioni di hook del codice nel tuo intento:
Poiché hai apportato modifiche al tuo bot, puoi creare una nuova versione del bot aggiungendo una nuova risorsa denominata BookHotelVersionWithLambda
nel modello:
La funzione Lambda è associata a un alias bot. Amazon Lex V2 può utilizzare una funzione Lambda per alias bot per lingua. Pertanto, devi aggiornare il tuo alias nel modello per aggiungere la risorsa della funzione Lambda. Puoi farlo nel BotAliasLocalSettings
sezione. Devi anche indirizzare l'alias alla nuova versione che hai creato. Il codice seguente è la configurazione dell'alias modificata:
Finora hai collegato solo la funzione Lambda all'alias. Tuttavia, devi concedere l'autorizzazione per consentire all'alias di richiamare la funzione Lambda. Nel codice seguente, aggiungi l'autorizzazione di chiamata Lambda per Amazon Lex e specifichi l'ARN dell'alias come ARN di origine:
Puoi scarica l'ultima versione del modello. Dopo aver aggiornato il tuo stack con questa versione, avrai un bot Amazon Lex integrato con una funzione Lambda.
Rami condizionali
Esploriamo ora la funzionalità del ramo condizionale del bot Amazon Lex e consideriamo uno scenario in cui non è consentito prenotare più di cinque notti a Seattle per la settimana successiva. Secondo i requisiti aziendali, la conversazione dovrebbe terminare con un messaggio appropriato se l'utente tenta di prenotare più di cinque notti a Seattle. Il ramo condizionale per questo è rappresentato nel modello CloudFormation sotto il file SlotCaptureSetting
:
Poiché hai modificato la definizione del bot, devi creare una nuova versione nel modello e collegarla all'alias. Si tratta di una modifica temporanea perché l'azienda prevede di consentire presto grandi prenotazioni a Seattle. Di seguito sono riportate le due nuove risorse aggiunte al modello:
Puoi scarica il modello aggiornato. Dopo aver aggiornato lo stack con questa versione del modello, l'alias verrà indirizzato alla versione che incorpora la funzionalità di diramazione condizionale. Per annullare questa modifica, puoi aggiornare l'alias per tornare alla versione precedente.
Registri
Puoi anche abilitare i log per il tuo bot Amazon Lex. Per fare ciò, devi aggiornare il ruolo del bot per concedere le autorizzazioni per la scrittura Amazon Cloud Watch registri. Di seguito è riportato un esempio di aggiunta di una policy CloudWatch al ruolo:
Per garantire un comportamento coerente e prevedibile, dovresti essere il più specifico possibile quando definisci i nomi e le proprietà delle risorse nei modelli CloudFormation. Questo perché l'uso del carattere jolly (*) nei modelli CloudFormation può comportare potenziali rischi per la sicurezza e portare a conseguenze indesiderate. Pertanto, si consiglia di evitare l'uso di caratteri jolly e di utilizzare invece valori espliciti ove possibile.
Successivamente, creerai una risorsa del gruppo di log CloudWatch, come mostrato nel codice seguente, per indirizzare i tuoi log a questo gruppo:
Infine, aggiorni il tuo alias per abilitare le impostazioni del registro delle conversazioni:
Quando aggiorni lo stack con questo modello, abiliti i log delle conversazioni per il tuo bot. In questo passaggio non viene creata una nuova versione perché non sono state apportate modifiche alla risorsa bot. Puoi scaricare l'ultima versione del modello.
Ripulire
Per evitare di incorrere in addebiti futuri, elimina lo stack CloudFormation che hai creato.
Conclusione
In questo post, abbiamo discusso il processo passo passo per creare un modello CloudFormation per un bot Amazon Lex V2. Inizialmente, abbiamo implementato un bot di base, poi abbiamo esplorato il potenziale degli alias e delle versioni e come utilizzarli in modo efficiente con i modelli. Successivamente, abbiamo imparato come integrare una funzione Lambda con un bot Amazon Lex V2 e implementato la ramificazione condizionale nel flusso di conversazione del bot per soddisfare i requisiti aziendali. Infine, abbiamo aggiunto funzionalità di registrazione creando una risorsa del gruppo di log CloudWatch e aggiornando il ruolo del bot con le autorizzazioni necessarie.
Il modello consente la distribuzione e la gestione semplici del bot, con la possibilità di annullare le modifiche se necessario. Nel complesso, il modello CloudFormation è utile per gestire e ottimizzare un bot Amazon Lex V2.
Come passaggio successivo, puoi esplorare provare i bot di Amazon Lex e applica le tecniche discusse in questo post per convertirle in modelli CloudFormation. Questa pratica pratica consoliderà la tua comprensione della gestione dei bot Amazon Lex V2 attraverso l'infrastruttura come codice.
Informazioni sugli autori
Thomas Rinfuss è Sr. Solutions Architect nel team di Amazon Lex. Inventa, sviluppa, prototipa ed evangelizza nuove caratteristiche tecniche e soluzioni per i servizi di Language AI che migliorano l'esperienza del cliente e ne facilitano l'adozione.
Rijeesh Akkambeth Chatoth è un consulente di servizi professionali presso AWS. Aiuta i clienti a raggiungere gli affari desiderati
risultati nello spazio Contact Center sfruttando le funzionalità di Amazon Connect, Amazon Lex e GenAI.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- Platone Salute. Intelligence sulle biotecnologie e sulle sperimentazioni cliniche. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/manage-your-amazon-lex-bot-via-aws-cloudformation-templates/