Platon Data Intelligence.
Vertikal sökning & Ai.

Hantera din Amazon Lex-bot via AWS CloudFormation-mallar | Amazon webbtjänster

Datum:

Amazon Lex är en fullständigt hanterad artificiell intelligens (AI)-tjänst med avancerade naturliga språkmodeller för att designa, bygga, testa och distribuera konversationsgränssnitt i applikationer. Den använder avancerad djupinlärningsteknik för att förstå användarinput, vilket gör det möjligt för utvecklare att skapa chatbots, virtuella assistenter och andra applikationer som kan interagera med användare på naturligt språk.

Hantera dina Amazon Lex-bots med hjälp av AWS molnformation låter dig skapa mallar som definierar boten och alla AWS-resurser den beror på. AWS CloudFormation tillhandahåller och konfigurerar dessa resurser för din räkning, vilket tar bort risken för mänskliga fel när robotar distribueras till nya miljöer. Fördelarna med att använda CloudFormation inkluderar:

  • Konsistens – En CloudFormation-mall ger ett mer konsekvent och automatiserat sätt att distribuera och hantera resurserna som är associerade med en Amazon Lex-bot.
  • Versionskontroll – Med AWS CloudFormation kan du använda versionskontrollsystem som Git för att hantera dina CloudFormation-mallar. Detta gör att du kan underhålla olika versioner av din bot och rulla tillbaka till tidigare versioner om det behövs.
  • reus Förmåga – Du kan återanvända CloudFormation-mallar i flera miljöer, som utveckling, iscensättning och produktion. Detta sparar tid och ansträngning för att definiera samma bot i olika miljöer.
  • Expansionsmöjligheter – När din Amazon Lex-bot växer i komplexitet, hanterar du den genom AWS Management Console blir mer utmanande. AWS CloudFormation möjliggör en mer strömlinjeformad och effektiv metod för att hantera botens definition och resurser.
  • Automation – Genom att använda en CloudFormation-mall kan du automatisera distributionsprocessen. Du kan använda AWS-tjänster som AWS CodePipeline och AWS CodeBuild att bygga, testa och distribuera din Amazon Lex-bot automatiskt.

I det här inlägget guidar vi dig genom stegen som är involverade i att skapa en CloudFormation-mall för en Amazon Lex V2-bot.

Lösningsöversikt

Vi har valt Boka resa bot som vår utgångspunkt för denna övning. Vi använder en CloudFormation-mall för att skapa en ny bot från början, inklusive att definiera avsikter, slots och andra nödvändiga komponenter. Dessutom utforskar vi ämnen som versionskontroll, alias, integrering AWS Lambda funktioner, skapa villkorliga grenar och möjliggöra loggning.

Förutsättningar

Du bör ha följande förutsättningar:

  • An AWS-konto för att skapa och distribuera en CloudFormation-mall
  • Det nödvändiga AWS identitets- och åtkomsthantering (JAG ÄR) behörigheter för att distribuera AWS CloudFormation och resurserna som används i mallen
  • Grundläggande kunskaper om Amazon Lex, Lambda-funktioner och tillhörande tjänster
  • Grundläggande kunskap om att skapa och distribuera CloudFormation-mallar

Skapa en IAM-roll

Till att börja med måste du skapa en IAM-roll som boten kommer att använda. Du kan uppnå detta genom att initiera en CloudFormation-mall och lägga till IAM-rollen som en resurs. Du kan använda följande mall för att skapa rollen. Om du ladda ner exempelmallen och distribuera den, bör du se att en IAM-roll har skapats. Vi ger exempel på mallar när vi går igenom det här inlägget och slår samman dem när vi kommer längre.

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: "*"

Konfigurera Amazon Lex-boten

Därefter måste du lägga till botdefinitionen. Följande är YAML-mallen för Amazon Lex-botdefinitionen; du konstruerar de nödvändiga komponenterna en efter en:

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

För att skapa en bot som bara innehåller botdefinitionen utan någon avsikt kan du använda följande mall. Här anger du botens namn, ARN för rollen som du tidigare skapat, datasekretessinställningar och mer:

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

Du kan ladda ner den uppdaterade mallen. Genom att distribuera den uppdaterade mallen kan du skapa både rollen och botdefinitionen. Observera att du är uppdaterar stacken du skapade i föregående steg.

Det sista steget innebär att definiera BotLocales, som utgör majoriteten av botens funktionalitet. Detta inkluderar t.ex. Intents och Slot types. Följande är YAML-mallen:

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

I det här fallet bygger du BookHotel intent, vilket kräver en anpassad platstyp för rumstyper. Du ställer in LocaleId, sedan VoiceSettings. Sedan lägger du till SlotTypes och deras motsvarande värden.

Nästa steg är att definiera Intents, börjar med den första avsikten, BookHotel, vilket innebär att man lägger till yttranden, luckor och luckprioriteringar. Detaljerna för dessa noder visas i den medföljande mallen. Slutligen lägger du till den andra avsikten, som är FallbackIntent. Se följande kod:

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"

Du kan ladda ner CloudFormation-mallen för det arbete som gjorts hittills. Efter dig uppdatera din stack med denna mall kommer en funktionell bot att distribueras. På Amazon Lex-konsolen kan du bekräfta att det finns en utkastversion av boten och ett standardalias som heter TestBotAlias Har skapats.

bot alias

Skapa en ny botversion och alias

Amazon Lex stöder publicering versioner av bots, avsikter och slottyper så att du kan kontrollera implementeringen av dina klientapplikationer. En version är en numrerad ögonblicksbild av din botdefinition som du kan publicera för användning i olika delar av ditt arbetsflöde, som utveckling, beta-distribution och produktion. Amazon Lex bots stöder också alias. Ett alias är en pekare till en specifik version av en bot. Med ett alias kan du uppdatera versionen av dina klientapplikationer. I praktiska scenarier används botalias för blå/gröna distributioner och hantering av miljöspecifika konfigurationer som utvecklings- och produktionsmiljöer.

För att illustrera, låt oss säga att du pekar ett alias till version 1 av din bot. När det är dags att uppdatera boten kan du publicera version 2 och ändra aliaset så att det pekar på den nya versionen. Eftersom dina applikationer använder aliaset istället för en specifik version får alla klienter den nya funktionaliteten utan att behöva uppdateras.

Tänk på att när du ändrar CloudFormation-mallen och initierar driftsättning, implementeras ändringarna i utkastversionen, främst avsedda för testning. När du har slutfört din testfas kan du skapa en ny version för att slutföra ändringarna du har införlivat hittills.

Därefter skapar du en ny botversion baserat på ditt utkast, skapar ett nytt alias och länkar versionen till detta alias. Följande är de två nya resurserna att lägga till i din mall:

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

Du kan ladda ner den nya versionen av mallen och distribuera den genom att uppdatera din stack. Du kan se på Amazon Lex-konsolen att en ny version skapas och associeras med ett nytt alias som kallas BookHotelDemoAlias.

demo alias

När du skapar en ny version av en Amazon Lex-bot, ökar den vanligtvis versionsnumret sekventiellt, med början från 1. För att urskilja en specifik version kan du hänvisa till dess beskrivning.

Första versionen

Lägg till en lambdafunktion

För att initiera värden eller validera användarinmatning för din bot, kan du lägga till en Lambda-funktion som en kodkrok till din bot. På samma sätt kan du använda en Lambda-funktion för uppfyllelse också, till exempel att skriva data till databaser eller anropa API:er för att spara den insamlade informationen. För mer information, se Aktiverar anpassad logik med AWS Lambda-funktioner.

Låt oss lägga till en ny resurs för Lambda-funktionen i CloudFormation-mallen. Även om det i allmänhet inte rekommenderas att bädda in kod i CloudFormation-mallar, gör vi det här enbart för att göra demo-distributionen mindre komplicerad. Se följande kod:

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

För att använda den här Lambda-funktionen för uppfyllelsen, aktivera kodkrokens inställningar i din avsikt:

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}"

Eftersom du har gjort ändringar i din bot kan du skapa en ny version av boten genom att lägga till en ny resurs med namnet BookHotelVersionWithLambda i mallen:

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

Lambdafunktionen är associerad med ett bot-alias. Amazon Lex V2 kan använda en Lambda-funktion per botalias per språk. Därför måste du uppdatera ditt alias i mallen för att lägga till Lambda-funktionsresursen. Du kan göra det i BotAliasLocalSettings sektion. Du måste också peka aliaset till den nya versionen du skapade. Följande kod är den modifierade aliaskonfigurationen:

  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

Hittills har du bara kopplat Lambda-funktionen med aliaset. Du måste dock ge tillstånd för att tillåta aliaset att anropa Lambda-funktionen. I följande kod lägger du till Lambda-anropsbehörigheten för Amazon Lex och anger aliaset ARN som käll-ARN:

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

Du kan ladda ner den senaste versionen av mallen. Efter att ha uppdaterat din stack med den här versionen kommer du att ha en Amazon Lex-bot integrerad med en Lambda-funktion.

andra versionen

uppdaterad alis

Villkorliga grenar

Låt oss nu utforska den villkorade filialfunktionen i Amazon Lex-boten och överväga ett scenario där det inte är tillåtet att boka fler än fem nätter i Seattle under nästa vecka. Enligt affärskravet bör konversationen avslutas med ett lämpligt meddelande om användaren försöker boka fler än fem nätter i Seattle. Den villkorliga grenen för det är representerad i CloudFormation-mallen under 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

Eftersom du ändrade botdefinitionen måste du skapa en ny version i mallen och länka den till aliaset. Detta är en tillfällig ändring eftersom verksamheten planerar att tillåta stora bokningar i Seattle snart. Följande är de två nya resurserna du lägger till i mallen:

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

Du kan ladda ner den uppdaterade mallen. När du har uppdaterat din stack med den här mallversionen kommer aliaset att dirigeras till versionen som innehåller den villkorliga förgreningsfunktionen. För att ångra denna ändring kan du uppdatera aliaset för att återgå till den tidigare versionen.

tredje versionen

alias för tredje versionen

Loggar

Du kan också aktivera loggar för din Amazon Lex-bot. För att göra det måste du uppdatera botens roll för att ge behörighet att skriva amazoncloudwatch loggar. Följande är ett exempel på hur du lägger till en CloudWatch-policy i rollen:

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: "*"

För att säkerställa konsekvent och förutsägbart beteende bör du vara så specifik som möjligt när du definierar resursnamn och egenskaper i CloudFormations mallar. Detta beror på att användningen av jokertecken (*) i CloudFormations mallar kan utgöra potentiella säkerhetsrisker och leda till oavsiktliga konsekvenser. Därför rekommenderas det att undvika att använda jokertecken och istället använda explicita värden där det är möjligt.

Därefter skapar du en CloudWatch-logggruppsresurs, som visas i följande kod, för att dirigera dina loggar till denna grupp:

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

Slutligen uppdaterar du ditt alias för att aktivera konversationslogginställningar:

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

När du uppdaterar stacken med den här mallen aktiverar du konversationsloggarna för din bot. En ny version skapas inte i det här steget eftersom det inte finns några ändringar i din botresurs. Du kan ladda ner den senaste versionen av mallen.

Clean Up

Ta bort CloudFormation-stacken du skapade för att förhindra att avgifter ådras i framtiden.

Slutsats

I det här inlägget diskuterade vi steg-för-steg-processen för att skapa en CloudFormation-mall för en Amazon Lex V2-bot. Till en början distribuerade vi en grundläggande bot, sedan utforskade vi potentialen för alias och versioner och hur man använder dem effektivt med mallar. Därefter lärde vi oss hur man integrerar en Lambda-funktion med en Amazon Lex V2-bot och implementerade villkorlig förgrening i botens konversationsflöde för att tillgodose affärskrav. Slutligen lade vi till loggningsfunktioner genom att skapa en CloudWatch-logggruppsresurs och uppdatera botens roll med nödvändiga behörigheter.

Mallen möjliggör enkel distribution och hantering av boten, med möjligheten att återställa ändringar vid behov. Sammantaget är CloudFormation-mallen användbar för att hantera och optimera en Amazon Lex V2-bot.

Som nästa steg kan du utforska exempel på Amazon Lex bots och tillämpa de tekniker som diskuteras i det här inlägget för att konvertera dem till CloudFormation-mallar. Denna praktiska övning kommer att stärka din förståelse för att hantera Amazon Lex V2-bots genom infrastruktur som kod.


Om författarna

Thomas Rindfuss är Sr. Solutions Architect i Amazon Lex-teamet. Han uppfinner, utvecklar, prototyper och evangeliserar nya tekniska funktioner och lösningar för Language AI-tjänster som förbättrar kundupplevelsen och underlättar användningen.

Rijeesh Akkambeth Chathoth är konsult för professionella tjänster på AWS. Han hjälper kunderna att uppnå sin önskade verksamhet
resultat i kontaktcentret genom att utnyttja funktionerna Amazon Connect, Amazon Lex och GenAI.

plats_img

Senaste intelligens

plats_img

Chatta med oss

Hallå där! Hur kan jag hjälpa dig?