Platon Data Intelligence.
Vertikal søgning & Ai.

Administrer din Amazon Lex-bot via AWS CloudFormation-skabeloner | Amazon Web Services

Dato:

Amazon Lex er en fuldt administreret kunstig intelligens (AI)-tjeneste med avancerede naturlige sprogmodeller til at designe, bygge, teste og implementere samtalegrænseflader i applikationer. Den anvender avancerede deep learning-teknologier til at forstå brugerinput, hvilket gør det muligt for udviklere at skabe chatbots, virtuelle assistenter og andre applikationer, der kan interagere med brugere på naturligt sprog.

Håndtering af dine Amazon Lex-bots ved hjælp af AWS CloudFormation giver dig mulighed for at oprette skabeloner, der definerer botten og alle de AWS-ressourcer, den afhænger af. AWS CloudFormation leverer og konfigurerer disse ressourcer på dine vegne, hvilket fjerner risikoen for menneskelige fejl, når du implementerer bots til nye miljøer. Fordelene ved at bruge CloudFormation inkluderer:

  • Sammenhæng – En CloudFormation-skabelon giver en mere konsistent og automatiseret måde at implementere og administrere de ressourcer, der er forbundet med en Amazon Lex-bot.
  • Version kontrol – Med AWS CloudFormation kan du bruge versionskontrolsystemer som Git til at administrere dine CloudFormation-skabeloner. Dette giver dig mulighed for at vedligeholde forskellige versioner af din bot og rulle tilbage til tidligere versioner, hvis det er nødvendigt.
  • Reus Evne – Du kan genbruge CloudFormation-skabeloner på tværs af flere miljøer, såsom udvikling, iscenesættelse og produktion. Dette sparer tid og kræfter ved at definere den samme bot på tværs af forskellige miljøer.
  • Udvidelsesmuligheder – Efterhånden som din Amazon Lex-bot vokser i kompleksitet, administrerer du den gennem AWS Management Console bliver mere udfordrende. AWS CloudFormation giver mulighed for en mere strømlinet og effektiv tilgang til styring af botens definition og ressourcer.
  • Automation – Ved at bruge en CloudFormation-skabelon kan du automatisere implementeringsprocessen. Du kan bruge AWS-tjenester som f.eks AWS CodePipeline , AWS CodeBuild at bygge, teste og implementere din Amazon Lex-bot automatisk.

I dette indlæg guider vi dig gennem de trin, der er involveret i at skabe en CloudFormation-skabelon til en Amazon Lex V2-bot.

Løsningsoversigt

Vi har valgt Book rejse bot som vores udgangspunkt for denne øvelse. Vi bruger en CloudFormation-skabelon til at skabe en ny bot fra bunden, herunder at definere hensigter, slots og andre nødvendige komponenter. Derudover udforsker vi emner som versionskontrol, aliaser, integration AWS Lambda funktioner, oprettelse af betingede grene og aktivering af logning.

Forudsætninger

Du skal have følgende forudsætninger:

  • An AWS-konto at oprette og implementere en CloudFormation-skabelon
  • Det nødvendige AWS identitets- og adgangsstyring (JEG ER) Tilladelser at implementere AWS CloudFormation og de ressourcer, der bruges i skabelonen
  • Grundlæggende viden om Amazon Lex, Lambda-funktioner og tilhørende tjenester
  • Grundlæggende viden om oprettelse og implementering af CloudFormation-skabeloner

Opret en IAM-rolle

For at begynde skal du oprette en IAM-rolle, som botten vil bruge. Du kan opnå dette ved at initialisere en CloudFormation-skabelon og tilføje IAM-rollen som en ressource. Du kan bruge følgende skabelon til at oprette rollen. hvis du download eksempelskabelonen og implementere den, skulle du se, at en IAM-rolle er blevet oprettet. Vi giver eksempler på skabeloner, mens vi gennemgår dette indlæg og fusionerer dem, efterhånden som vi kommer længere.

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

Konfigurer Amazon Lex-bot

Dernæst skal du tilføje botdefinitionen. Følgende er YAML-skabelonen til Amazon Lex-botdefinitionen; du konstruerer de nødvendige komponenter én efter én:

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

For at oprette en bot, der kun inkluderer botdefinitionen uden nogen hensigt, kan du bruge følgende skabelon. Her angiver du botens navn, ARN for den rolle, du tidligere har oprettet, databeskyttelsesindstillinger og mere:

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 download den opdaterede skabelon. Ved at implementere den opdaterede skabelon kan du oprette både rollen og botdefinitionen. Bemærk, at du er opdatering af stakken du oprettede i det forrige trin.

Det sidste trin indebærer at definere BotLocales, som udgør størstedelen af ​​botens funktionalitet. Dette omfatter f.eks. Intents , Slot types. Følgende er YAML-skabelonen:

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

I dette tilfælde bygger du BookHotel hensigt, som kræver en brugerdefineret slottype til rumtyper. Du indstiller LocaleId, så den VoiceSettings. Så tilføjer du SlotTypes og deres tilsvarende værdier.

Det næste trin er at definere Intentsbegyndende med den første hensigt, BookHotel, som involverer tilføjelse af ytringer, slots og slotprioriteter. Detaljerne for disse noder er vist i den medfølgende skabelon. Til sidst tilføjer du den anden hensigt, som er FallbackIntent. Se følgende kode:

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 download CloudFormation skabelonen for det arbejde, der er udført indtil nu. Efter dig opdatere din stak med denne skabelon vil en funktionel bot blive implementeret. På Amazon Lex-konsollen kan du bekræfte, at der er en kladdeversion af botten og et standardalias ved navn TestBotAlias er blevet oprettet.

bot alias

Opret en ny botversion og alias

Amazon Lex understøtter publicering versioner af bots, hensigter og slottyper, så du kan kontrollere implementeringen af ​​dine klientapplikationer. En version er et nummereret øjebliksbillede af din botdefinition, som du kan publicere til brug i forskellige dele af din arbejdsgang, såsom udvikling, beta-implementering og produktion. Amazon Lex-bots understøtter også aliasser. Et alias er en pegepind til en specifik version af en bot. Med et alias kan du opdatere dine klientapplikationers version. I praktiske scenarier bruges bot-aliaser til blå/grønne udrulninger og styring af miljøspecifikke konfigurationer som udviklings- og produktionsmiljøer.

For at illustrere det, lad os sige, at du peger et alias til version 1 af din bot. Når det er tid til at opdatere botten, kan du udgive version 2 og ændre aliaset til at pege på den nye version. Fordi dine applikationer bruger alias i stedet for en specifik version, modtager alle klienter den nye funktionalitet uden at kræve opdateringer.

Husk, at når du ændrer CloudFormation-skabelonen og starter implementeringen, implementeres ændringerne i udkastversionen, primært beregnet til test. Når du har afsluttet din testfase, kan du oprette en ny version for at færdiggøre de ændringer, du hidtil har indarbejdet.

Dernæst opretter du en ny botversion baseret på dit udkast, opsætter et nyt alias og linker versionen til dette alias. Følgende er de to nye ressourcer, du kan tilføje til din skabelon:

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 download den nye version af skabelonen og implementer det ved at opdatere din stak. Du kan se på Amazon Lex-konsollen, at en ny version er oprettet og forbundet med et nyt alias kaldet BookHotelDemoAlias.

demo alias

Når du opretter en ny version af en Amazon Lex-bot, øger den typisk versionsnummeret sekventielt, startende fra 1. For at skelne en specifik version kan du henvise til beskrivelsen af ​​den.

indledende version

Tilføj en Lambda-funktion

For at initialisere værdier eller validere brugerinput for din bot, kan du tilføje en Lambda-funktion som en kodehook til din bot. På samme måde kan du også bruge en Lambda-funktion til opfyldelse, for eksempel at skrive data til databaser eller kalde API'er og gemme de indsamlede oplysninger. For mere information, se Aktivering af brugerdefineret logik med AWS Lambda-funktioner.

Lad os tilføje en ny ressource til Lambda-funktionen til CloudFormation-skabelonen. Selvom det generelt ikke anbefales at indlejre kode i CloudFormation-skabeloner, gør vi det her udelukkende for at gøre demo-implementeringen mindre kompliceret. Se følgende kode:

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

For at bruge denne Lambda-funktion til opfyldelsen skal du aktivere indstillingerne for kodekrog i din hensigt:

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

Fordi du har lavet ændringer i din bot, kan du oprette en ny version af botten ved at tilføje en ny ressource med navnet BookHotelVersionWithLambda i skabelonen:

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

Lambda-funktionen er forbundet med et bot-alias. Amazon Lex V2 kan bruge én Lambda-funktion pr. bot-alias pr. sprog. Derfor skal du opdatere dit alias i skabelonen for at tilføje Lambda-funktionsressourcen. Det kan du gøre i BotAliasLocalSettings afsnit. Du skal også pege aliaset til den nye version, du har oprettet. Følgende kode er den ændrede aliaskonfiguration:

  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

Indtil nu har du kun forbundet Lambda-funktionen med aliaset. Du skal dog give tilladelse til at tillade aliasset at påkalde Lambda-funktionen. I den følgende kode tilføjer du Lambda-påkaldetilladelsen for Amazon Lex og angiver aliaset ARN som kilde-ARN:

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

Du kan download den nyeste version af skabelonen. Efter at have opdateret din stack med denne version, vil du have en Amazon Lex-bot integreret med en Lambda-funktion.

anden version

opdateret alis

Betingede grene

Lad os nu udforske den betingede filialfunktion i Amazon Lex-bot og overveje et scenario, hvor det ikke er tilladt at reservere mere end fem nætter i Seattle i den næste uge. I henhold til forretningskravet skal samtalen afsluttes med en passende besked, hvis brugeren forsøger at booke mere end fem nætter i Seattle. Den betingede gren for det er repræsenteret i CloudFormation-skabelonen 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

Fordi du har ændret botdefinitionen, skal du oprette en ny version i skabelonen og forbinde den med aliaset. Dette er en midlertidig ændring, fordi virksomheden planlægger at tillade store reservationer i Seattle snart. Følgende er de to nye ressourcer, du føjer til skabelonen:

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 download den opdaterede skabelon. Når du har opdateret din stak med denne skabelonversion, vil aliaset blive dirigeret til den version, der inkorporerer den betingede forgreningsfunktion. For at fortryde denne ændring kan du opdatere aliaset for at vende tilbage til den tidligere version.

tredje version

alias for tredje version

Logs

Du kan også aktivere logfiler for din Amazon Lex-bot. For at gøre det skal du opdatere bottens rolle for at give tilladelser til at skrive amazoncloudwatch logs. Følgende er et eksempel på tilføjelse af en CloudWatch-politik til 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: "*"

For at sikre ensartet og forudsigelig adfærd bør du være så specifik som muligt, når du definerer ressourcenavne og egenskaber i CloudFormation-skabeloner. Dette skyldes, at brugen af ​​jokertegn (*) i CloudFormation-skabeloner kan udgøre potentielle sikkerhedsrisici og føre til utilsigtede konsekvenser. Derfor anbefales det at undgå at bruge jokertegn og i stedet bruge eksplicitte værdier, hvor det er muligt.

Derefter opretter du en CloudWatch-loggrupperessource, som vist i følgende kode, for at dirigere dine logfiler til denne gruppe:

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

Til sidst opdaterer du dit alias for at aktivere indstillinger for samtalelog:

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 opdaterer stakken med denne skabelon, aktiverer du samtaleloggene for din bot. En ny version oprettes ikke i dette trin, fordi der ikke er nogen ændringer i din botressource. Du kan download den seneste version af skabelonen.

Clean Up

Slet den CloudFormation-stak, du har oprettet, for at forhindre, at der opstår gebyrer i fremtiden.

Konklusion

I dette indlæg diskuterede vi trin-for-trin-processen til at skabe en CloudFormation-skabelon til en Amazon Lex V2-bot. Til at begynde med implementerede vi en grundlæggende bot, derefter undersøgte vi potentialet i aliaser og versioner, og hvordan man bruger dem effektivt med skabeloner. Dernæst lærte vi, hvordan man integrerer en Lambda-funktion med en Amazon Lex V2-bot og implementerede betinget forgrening i botens samtaleflow for at imødekomme forretningskrav. Til sidst tilføjede vi logfunktioner ved at oprette en CloudWatch-loggrupperessource og opdatere botens rolle med de nødvendige tilladelser.

Skabelonen giver mulighed for ligetil implementering og administration af botten med mulighed for at vende ændringer efter behov. Samlet set er CloudFormation-skabelonen nyttig til at administrere og optimere en Amazon Lex V2-bot.

Som næste trin kan du udforske eksempel på Amazon Lex-bots og anvende de teknikker, der er diskuteret i dette indlæg, for at konvertere dem til CloudFormation-skabeloner. Denne praktiske praksis vil styrke din forståelse af at administrere Amazon Lex V2-bots gennem infrastruktur som kode.


Om forfatterne

Thomas Rindfuss er Sr. Solutions Architect på Amazon Lex-teamet. Han opfinder, udvikler, prototyper og evangeliserer nye tekniske funktioner og løsninger til Language AI-tjenester, der forbedrer kundeoplevelsen og letter adoptionen.

Rijeesh Akkambeth Chathoth er professionel servicekonsulent hos AWS. Han hjælper kunder med at opnå deres ønskede forretning
resultater i Contact Center-området ved at udnytte funktionerne Amazon Connect, Amazon Lex og GenAI.

spot_img

Seneste efterretninger

spot_img

Chat med os

Hej! Hvordan kan jeg hjælpe dig?