Intelligenza generativa dei dati

Gestisci il tuo bot Amazon Lex tramite i modelli AWS CloudFormation | Servizi Web di Amazon

Data:

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.

AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: CloudFormation template for book hotel bot.
Resources:
  # 1. IAM role that is used by the bot at runtime
  BotRuntimeRole:    
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lexv2.amazonaws.com
            Action:
              - "sts:AssumeRole"
      Path: "/"
      Policies:
        - PolicyName: LexRuntimeRolePolicy
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action:
                  - "polly:SynthesizeSpeech"
                  - "comprehend:DetectSentiment"
                Resource: "*"

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:

Type: AWS::Lex::Bot
Properties:
  AutoBuildBotLocales: Boolean
  BotFileS3Location: 
    S3Location
  BotLocales: 
    - BotLocale
  BotTags: 
    - Tag
  DataPrivacy: 
    DataPrivacy
  Description: String
  IdleSessionTTLInSeconds: Integer
  Name: String
  RoleArn: String
  TestBotAliasSettings: 
    TestBotAliasSettings
  TestBotAliasTags: 
    - Tag

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:

BookHotelBot:
    DependsOn: BotRuntimeRole # The role created in the previous step
    Type: AWS::Lex::Bot
    Properties:
      Name: "BookHotel"
      Description: "Sample Bot to book a hotel"
      RoleArn: !GetAtt BotRuntimeRole.Arn      
      #For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex 
      #is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under 
      #age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying true or false in the 
      #childDirected field.
      DataPrivacy:
        ChildDirected: false
      IdleSessionTTLInSeconds: 300

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:

  CustomVocabulary: 
    CustomVocabulary
  Description: String
  Intents: 
    - Intent
  LocaleId: String
  NluConfidenceThreshold: Number
  SlotTypes: 
    - SlotType
  VoiceSettings: 
    VoiceSettings

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:

BotLocales:
        - LocaleId: "en_US"
          Description: "en US locale"
          NluConfidenceThreshold: 0.40
          VoiceSettings:
            VoiceId: "Matthew"
          SlotTypes:
            - Name: "RoomTypeValues"
              Description: "Type of room"
              SlotTypeValues:
                - SampleValue:
                    Value: queen
                - SampleValue:
                    Value: king
                - SampleValue:
                    Value: deluxe
              ValueSelectionSetting:
                ResolutionStrategy: ORIGINAL_VALUE
          Intents:
            - Name: "BookHotel"
              Description: "Intent to book a hotel room"
              SampleUtterances:
                - Utterance: "Book a hotel"
                - Utterance: "I want a make hotel reservations"
                - Utterance: "Book a {Nights} night stay in {Location}"
              IntentConfirmationSetting:
                PromptSpecification:
                  MessageGroupsList:
                    - Message:
                        PlainTextMessage:
                          Value: "Okay, I have you down for a {Nights} night stay in {Location} starting {CheckInDate}.  Shall I book the reservation?"
                  MaxRetries: 3
                  AllowInterrupt: false
                DeclinationResponse:
                  MessageGroupsList:
                    - Message:
                        PlainTextMessage:
                          Value: "Okay, I have cancelled your reservation in progress."
                  AllowInterrupt: false
              SlotPriorities:
                - Priority: 1
                  SlotName: Location
                - Priority: 2
                  SlotName: CheckInDate
                - Priority: 3
                  SlotName: Nights
                - Priority: 4
                  SlotName: RoomType
              Slots:
                - Name: "Location"
                  Description: "Location of the city in which the hotel is located"
                  SlotTypeName: "AMAZON.City"
                  ValueElicitationSetting:
                    SlotConstraint: "Required"
                    PromptSpecification:
                      MessageGroupsList:
                        - Message:
                            PlainTextMessage:
                              Value: "What city will you be staying in?"
                      MaxRetries: 2
                      AllowInterrupt: false
                - Name: "CheckInDate"
                  Description: "Date of check-in"
                  SlotTypeName: "AMAZON.Date"
                  ValueElicitationSetting:
                    SlotConstraint: "Required"
                    PromptSpecification:
                      MessageGroupsList:
                        - Message:
                            PlainTextMessage:
                              Value: "What day do you want to check in?"
                      MaxRetries: 2
                      AllowInterrupt: false
                - Name: "Nights"
                  Description: "something"
                  SlotTypeName: "AMAZON.Number"
                  ValueElicitationSetting:
                    SlotConstraint: "Required"
                    PromptSpecification:
                      MessageGroupsList:
                        - Message:
                            PlainTextMessage:
                              Value: "How many nights will you be staying?"
                      MaxRetries: 2
                      AllowInterrupt: false
                - Name: "RoomType"
                  Description: "Enumeration of types of rooms that are offered by a hotel."
                  SlotTypeName: "RoomTypeValues"
                  ValueElicitationSetting:
                    SlotConstraint: "Required"
                    PromptSpecification:
                      MessageGroupsList:
                        - Message:
                            PlainTextMessage:
                              Value: "What type of room would you like, queen, king or deluxe?"
                      MaxRetries: 2
                      AllowInterrupt: false
            - Name: "FallbackIntent"
              Description: "Default intent when no other intent matches"
              ParentIntentSignature: "AMAZON.FallbackIntent"

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.

alias bot

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:

BookHotelInitialVersion:
    DependsOn: BookHotelBot
    Type: AWS::Lex::BotVersion
    Properties:
      BotId: !Ref BookHotelBot
      BotVersionLocaleSpecification:
        - LocaleId: en_US
          BotVersionLocaleDetails:
            SourceBotVersion: DRAFT
      Description: Hotel Bot initial version

  BookHotelDemoAlias:
    Type: AWS::Lex::BotAlias
    Properties:
      BotId: !Ref BookHotelBot
      BotAliasName: "BookHotelDemoAlias"
      BotVersion: !GetAtt BookHotelInitialVersion.BotVersion

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.

alias dimostrativo

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.

versione iniziale

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:

HotelBotFunction:
    DependsOn: BotRuntimeRole # So that the Lambda function is ready before the bot deployment
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: book_hotel_lambda
      Runtime: python3.11
      Timeout: 15
      Handler: index.lambda_handler
      InlineCode: |
        import os
        import json

        def close(intent_request):
            intent_request['sessionState']['intent']['state'] = 'Fulfilled'

            message = {"contentType": "PlainText",
                      "content": "Your Booking is confirmed"}

            session_attributes = {}
            sessionState = intent_request['sessionState']
            if 'sessionAttributes' in sessionState:
                session_attributes = sessionState['sessionAttributes']

            requestAttributes = None
            if 'requestAttributes' in intent_request:
                requestAttributes = intent_request['requestAttributes']

            return {
                'sessionState': {
                    'sessionAttributes': session_attributes,
                    'dialogAction': {
                        'type': 'Close'
                    },
                    'intent': intent_request['sessionState']['intent'],
                    'originatingRequestId': 'xxxxxxx-xxxx-xxxx-xxxx'
                },
                'messages':  [message],
                'sessionId': intent_request['sessionId'],
                'requestAttributes': requestAttributes
            }

        def router(event):
            intent_name = event['sessionState']['intent']['name']
            slots = event['sessionState']['intent']['slots']
            if (intent_name == 'BookHotel'):
                # invoke lambda and return result
                return close(event)

            raise Exception(
                'The intent is not supported by Lambda: ' + intent_name)

        def lambda_handler(event, context):
            response = router(event)
            return response

Per utilizzare questa funzione Lambda per l'adempimento, abilita le impostazioni di hook del codice nel tuo intento:

Intents:
  - Name: "BookHotel"
    Description: "Intent to book a hotel room"
    FulfillmentCodeHook:
      Enabled: true
    SampleUtterances:
      - Utterance: "Book a hotel"
      - Utterance: "I want a make hotel reservations"
      - Utterance: "Book a {Nights} night stay in {Location}"

Poiché hai apportato modifiche al tuo bot, puoi creare una nuova versione del bot aggiungendo una nuova risorsa denominata BookHotelVersionWithLambda nel modello:

BookHotelVersionWithLambda:
    DependsOn: BookHotelInitialVersion
    Type: AWS::Lex::BotVersion
    Properties:
      BotId: !Ref BookHotelBot
      BotVersionLocaleSpecification:
        - LocaleId: en_US
          BotVersionLocaleDetails:
            SourceBotVersion: DRAFT
      Description: Hotel Bot with a lambda function

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:

  BookHotelDemoAlias:
    Type: AWS::Lex::BotAlias
    Properties:
      BotId: !Ref BookHotelBot
      BotAliasName: "BookHotelDemoAlias"
      BotVersion: !GetAtt BookHotelVersionWithLambda.BotVersion
      # Remove BotAliasLocaleSettings if you aren't concerned with Lambda setup.
      # If you are you can modify the LambdaArn below to get started.
      BotAliasLocaleSettings:
        - LocaleId: en_US
          BotAliasLocaleSetting:
            Enabled: true
            CodeHookSpecification:
              LambdaCodeHook:
                CodeHookInterfaceVersion: "1.0"
                LambdaArn: !GetAtt HotelBotFunction.Arn

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:

  LexInvokeLambdaPermission:
    Type: AWS::Lambda::Permission
    Properties:
      Action: "lambda:InvokeFunction"
      FunctionName: !GetAtt HotelBotFunction.Arn
      Principal: "lexv2.amazonaws.com"
      SourceArn: !GetAtt BookHotelDemoAlias.Arn

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.

seconda versione

alis aggiornato

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:

- Name: "Nights"
                  Description: “Number of nights.”
                  SlotTypeName: "AMAZON.Number"
                  ValueElicitationSetting:
                    SlotConstraint: "Required"
                    SlotCaptureSetting:
                      CaptureConditional:
                        DefaultBranch:
                          NextStep:
                            DialogAction:
                              Type: "ElicitSlot"
                              SlotToElicit: "RoomType"
                        ConditionalBranches:
                          - Name: "Branch1"
                            Condition:
                              ExpressionString: '{Nights}>5 AND {Location} = "Seattle"'
                            Response:
                              AllowInterrupt: true
                              MessageGroupsList:
                                - Message:
                                    PlainTextMessage:
                                      Value: “Sorry, we cannot book more than five nights in {Location} right now."
                            NextStep:
                              DialogAction:
                                Type: "EndConversation"
                        IsActive: true

                    PromptSpecification:
                      MessageGroupsList:
                        - Message:
                            PlainTextMessage:
                              Value: "How many nights will you be staying?"
                      MaxRetries: 2
                      AllowInterrupt: false

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:

BookHotelConditionalBranches:
    DependsOn: BookHotelVersionWithLambda
    Type: AWS::Lex::BotVersion
    Properties:
      BotId: !Ref BookHotelBot
      BotVersionLocaleSpecification:
        - LocaleId: en_US
          BotVersionLocaleDetails:
            SourceBotVersion: DRAFT
      Description: Hotel Bot Version with conditional branches

  BookHotelDemoAlias:
    Type: AWS::Lex::BotAlias
    Properties:
      BotId: !Ref BookHotelBot
      BotAliasName: "BookHotelDemoAlias"
      BotVersion: !GetAtt BookHotelConditionalBranches.BotVersion
      # Remove BotAliasLocaleSettings if you aren't concerned with Lambda setup.
      # If you are you can modify the LambdaArn below to get started.
      BotAliasLocaleSettings:
        - LocaleId: en_US
          BotAliasLocaleSetting:
            Enabled: true
            CodeHookSpecification:
              LambdaCodeHook:
                CodeHookInterfaceVersion: "1.0"
                LambdaArn: !GetAtt HotelBotFunction.Arn

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.

terza versione

alias per la terza versione

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:

BotRuntimeRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - lexv2.amazonaws.com
            Action:
              - "sts:AssumeRole"
      Path: "/"
      Policies:
        - PolicyName: LexRuntimeRolePolicy
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action:
                  - "polly:SynthesizeSpeech"
                  - "comprehend:DetectSentiment"
                Resource: "*"
        - PolicyName: CloudWatchPolicy
          PolicyDocument:
            Version: 2012-10-17
            Statement:
              - Effect: Allow
                Action:
                  - "logs:CreateLogStream"
                  - "logs:PutLogEvents"
                Resource: "*"

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:

  #Log Group
  LexLogGroup:
    Type: AWS::Logs::LogGroup
    Properties:
      LogGroupName: /lex/hotel-bot
      RetentionInDays: 5

Infine, aggiorni il tuo alias per abilitare le impostazioni del registro delle conversazioni:

BookHotelDemoAlias:
    Type: AWS::Lex::BotAlias
    Properties:
      BotId: !Ref BookHotelBot
      BotAliasName: "BookHotelDemoAlias"
      BotVersion: !GetAtt BookHotelConditionalBranches.BotVersion
      BotAliasLocaleSettings:
        - LocaleId: en_US
          BotAliasLocaleSetting:
            Enabled: true
            CodeHookSpecification:
              LambdaCodeHook:
                CodeHookInterfaceVersion: "1.0"
                LambdaArn: !GetAtt HotelBotFunction.Arn
      ConversationLogSettings:
        TextLogSettings:
          - Destination:
              CloudWatch:
                CloudWatchLogGroupArn: !GetAtt LexLogGroup.Arn
                LogPrefix: bookHotel
            Enabled: true

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.

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?