Administrer Amazon Lex-boten din via AWS CloudFormation-maler | Amazon Web Services

Administrer Amazon Lex-boten din via AWS CloudFormation-maler | Amazon Web Services

Amazon Lex er en fullstendig administrert kunstig intelligens (AI)-tjeneste med avanserte naturlige språkmodeller for å designe, bygge, teste og distribuere samtalegrensesnitt i applikasjoner. Den bruker avanserte dyplæringsteknologier for å forstå brukerinnspill, slik at utviklere kan lage chatbots, virtuelle assistenter og andre applikasjoner som kan samhandle med brukere på naturlig språk.

Administrere Amazon Lex-robotene dine ved å bruke AWS skyformasjon lar deg lage maler som definerer boten og alle AWS-ressursene den er avhengig av. AWS CloudFormation leverer og konfigurerer disse ressursene på dine vegne, og fjerner risikoen for menneskelige feil ved distribusjon av roboter til nye miljøer. Fordelene med å bruke CloudFormation inkluderer:

  • Konsistens – En CloudFormation-mal gir en mer konsistent og automatisert måte å distribuere og administrere ressursene knyttet til en Amazon Lex-bot.
  • Versjonskontroll – Med AWS CloudFormation kan du bruke versjonskontrollsystemer som Git til å administrere CloudFormation-malene dine. Dette lar deg vedlikeholde forskjellige versjoner av boten din og rulle tilbake til tidligere versjoner om nødvendig.
  • Reus Evne – Du kan gjenbruke CloudFormation-maler på tvers av flere miljøer, for eksempel utvikling, iscenesettelse og produksjon. Dette sparer tid og krefter på å definere den samme roboten på tvers av forskjellige miljøer.
  • utvidelses~~POS=TRUNC – Etter hvert som Amazon Lex-roboten din vokser i kompleksitet, administrerer du den gjennom AWS-administrasjonskonsoll blir mer utfordrende. AWS CloudFormation gir mulighet for en mer strømlinjeformet og effektiv tilnærming til å administrere botens definisjon og ressurser.
  • Automatisering – Ved å bruke en CloudFormation-mal kan du automatisere distribusjonsprosessen. Du kan bruke AWS-tjenester som AWS CodePipeline og AWS CodeBuild å bygge, teste og distribuere Amazon Lex-roboten din automatisk.

I dette innlegget veileder vi deg gjennom trinnene som er involvert i å lage en CloudFormation-mal for en Amazon Lex V2-bot.

Løsningsoversikt

Vi har valgt Bestill reise bot som utgangspunkt for denne øvelsen. Vi bruker en CloudFormation-mal for å lage en ny bot fra bunnen av, inkludert å definere intensjoner, spor og andre nødvendige komponenter. I tillegg utforsker vi emner som versjonskontroll, aliaser, integrering AWS Lambda funksjoner, opprette betingede grener og aktivere logging.

Forutsetninger

Du bør ha følgende forutsetninger:

  • An AWS-konto for å opprette og distribuere en CloudFormation-mal
  • Det nødvendige AWS identitets- og tilgangsadministrasjon (JEG ER) tillatelser å distribuere AWS CloudFormation og ressursene som brukes i malen
  • Grunnleggende kunnskap om Amazon Lex, Lambda-funksjoner og tilhørende tjenester
  • Grunnleggende kunnskap om å lage og distribuere CloudFormation-maler

Lag en IAM-rolle

For å begynne må du opprette en IAM-rolle som boten skal bruke. Du kan oppnå dette ved å initialisere en CloudFormation-mal og legge til IAM-rollen som en ressurs. Du kan bruke følgende mal for å opprette rollen. Hvis du last ned eksempelmalen og distribuere den, bør du se at en IAM-rolle er opprettet. Vi gir eksempler på maler når vi går gjennom dette innlegget og slår dem sammen etter hvert som vi kommer lenger.

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-boten

Deretter må du legge til botdefinisjonen. Følgende er YAML-malen for Amazon Lex-botdefinisjonen; du konstruerer de nødvendige komponentene en etter 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

For å lage en bot som bare inkluderer botdefinisjonen uten noen hensikt, kan du bruke følgende mal. Her spesifiserer du botens navn, ARN for rollen du tidligere opprettet, innstillinger for personvern og 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 last ned den oppdaterte malen. Ved å distribuere den oppdaterte malen kan du opprette både rollen og botdefinisjonen. Merk at du er oppdaterer stabelen du opprettet i forrige trinn.

Det siste trinnet innebærer å definere BotLocales, som utgjør størstedelen av robotens funksjonalitet. Dette inkluderer f.eks. Intents og Slot types. Følgende er YAML-malen:

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

I dette tilfellet bygger du BookHotel intent, som krever en tilpasset sportype for romtyper. Du stiller inn LocaleId, og så VoiceSettings. Deretter legger du til SlotTypes og deres tilsvarende verdier.

Det neste trinnet er å definere Intents, starter med den første hensikten, BookHotel, som innebærer å legge til ytringer, spor og sporprioriteter. Detaljene til disse nodene er demonstrert i den medfølgende malen. Til slutt legger du til den andre intensjonen, 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 last ned CloudFormation-malen for arbeidet som er gjort til nå. Etter deg oppdater stabelen din med denne malen vil en funksjonell bot bli distribuert. På Amazon Lex-konsollen kan du bekrefte at det er en utkastversjon av boten, og et standardalias kalt TestBotAlias har blitt skapt.

bot alias

Opprett en ny botversjon og alias

Amazon Lex støtter publisering versjoner av roboter, intensjoner og sportyper slik at du kan kontrollere implementeringen av klientapplikasjonene dine. En versjon er et nummerert øyeblikksbilde av botdefinisjonen din som du kan publisere for bruk i forskjellige deler av arbeidsflyten din, for eksempel utvikling, beta-distribusjon og produksjon. Amazon Lex-roboter støtter også aliaser. Et alias er en peker til en spesifikk versjon av en bot. Med et alias kan du oppdatere klientapplikasjonenes versjon. I praktiske scenarier brukes botaliaser for blå/grønne distribusjoner og administrasjon av miljøspesifikke konfigurasjoner som utviklings- og produksjonsmiljøer.

For å illustrere, la oss si at du peker et alias til versjon 1 av boten din. Når det er på tide å oppdatere boten, kan du publisere versjon 2 og endre aliaset for å peke til den nye versjonen. Fordi applikasjonene dine bruker aliaset i stedet for en spesifikk versjon, mottar alle klienter den nye funksjonaliteten uten å kreve oppdateringer.

Husk at når du endrer CloudFormation-malen og starter distribusjon, implementeres endringene i utkastversjonen, primært ment for testing. Etter at du har fullført testfasen, kan du etablere en ny versjon for å fullføre endringene du har innlemmet så langt.

Deretter oppretter du en ny botversjon basert på utkastet ditt, setter opp et nytt alias og kobler versjonen til dette aliaset. Følgende er de to nye ressursene du kan legge til i malen din:

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 last ned den nye versjonen av malen og distribuer den ved å oppdatere stabelen din. Du kan se på Amazon Lex-konsollen at en ny versjon er opprettet og assosiert med et nytt alias kalt BookHotelDemoAlias.

demo alias

Når du oppretter en ny versjon av en Amazon Lex-bot, øker den vanligvis versjonsnummeret sekvensielt, fra 1. For å se en spesifikk versjon kan du se beskrivelsen.

innledende versjon

Legg til en Lambda-funksjon

For å initialisere verdier eller validere brukerinndata for boten din, kan du legge til en Lambda-funksjon som en kodekrok til boten din. På samme måte kan du bruke en Lambda-funksjon for oppfyllelse også, for eksempel å skrive data til databaser eller ringe APIer for å lagre den innsamlede informasjonen. For mer informasjon, se Aktiverer tilpasset logikk med AWS Lambda-funksjoner.

La oss legge til en ny ressurs for Lambda-funksjonen i CloudFormation-malen. Selv om det generelt ikke anbefales å bygge inn kode i CloudFormation-maler, gjør vi det her utelukkende for å gjøre demo-distribusjonen mindre komplisert. 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 å bruke denne Lambda-funksjonen for oppfyllelsen, aktiver kodekroken-innstillingene i din hensikt:

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 gjort endringer i boten din, kan du opprette en ny versjon av boten ved å legge til en ny ressurs kalt BookHotelVersionWithLambda i malen:

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-funksjonen er assosiert med et bot-alias. Amazon Lex V2 kan bruke én Lambda-funksjon per botalias per språk. Derfor må du oppdatere aliaset ditt i malen for å legge til Lambda-funksjonsressursen. Du kan gjøre det i BotAliasLocalSettings seksjon. Du må også peke aliaset til den nye versjonen du opprettet. Følgende kode er den modifiserte aliaskonfigurasjonen:

  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

Til nå har du kun koblet Lambda-funksjonen med aliaset. Du må imidlertid gi tillatelse til å tillate aliaset å påkalle Lambda-funksjonen. I følgende kode legger du til Lambda-påkallingstillatelsen for Amazon Lex og spesifiserer 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 last ned den nyeste versjonen av malen. Etter å ha oppdatert stabelen din med denne versjonen, vil du ha en Amazon Lex-bot integrert med en Lambda-funksjon.

andre versjon

oppdatert alis

Betingede grener

La oss nå utforske den betingede grenfunksjonen til Amazon Lex-boten og vurdere et scenario der det ikke er tillatt å bestille mer enn fem netter i Seattle den neste uken. I henhold til forretningskravet bør samtalen avsluttes med en passende melding hvis brukeren prøver å bestille mer enn fem netter i Seattle. Den betingede grenen for det er representert i CloudFormation-malen 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 endret botdefinisjonen, må du opprette en ny versjon i malen og koble den til aliaset. Dette er en midlertidig endring fordi virksomheten planlegger å tillate store bestillinger i Seattle snart. Følgende er de to nye ressursene du legger til i malen:

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 last ned den oppdaterte malen. Etter at du har oppdatert stabelen din med denne malversjonen, vil aliaset bli dirigert til versjonen som inneholder den betingede forgreningsfunksjonen. For å angre denne endringen kan du oppdatere aliaset for å gå tilbake til forrige versjon.

tredje versjon

alias for tredje versjon

Logger

Du kan også aktivere logger for din Amazon Lex-bot. For å gjøre det, må du oppdatere robotens rolle for å gi tillatelser til å skrive Amazon CloudWatch tømmerstokker. Følgende er et eksempel på å legge til en CloudWatch-policy 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 å sikre konsistent og forutsigbar oppførsel, bør du være så spesifikk som mulig når du definerer ressursnavn og egenskaper i CloudFormation-maler. Dette er fordi bruken av jokertegnet (*) i CloudFormation-maler kan utgjøre potensielle sikkerhetsrisikoer og føre til utilsiktede konsekvenser. Derfor anbefales det å unngå å bruke jokertegn og i stedet bruke eksplisitte verdier der det er mulig.

Deretter oppretter du en CloudWatch-logggrupperessurs, som vist i følgende kode, for å sende loggene dine til denne gruppen:

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

Til slutt oppdaterer du aliaset ditt for å aktivere innstillinger for samtalelogg:

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 oppdaterer stabelen med denne malen, aktiverer du samtaleloggene for boten din. En ny versjon opprettes ikke i dette trinnet fordi det ikke er noen endringer i botressursen din. Du kan last ned den nyeste versjonen av malen.

Rydd opp

For å forhindre at det påløper kostnader i fremtiden, slett CloudFormation-stakken du opprettet.

konklusjonen

I dette innlegget diskuterte vi trinn-for-trinn-prosessen for å lage en CloudFormation-mal for en Amazon Lex V2-bot. Til å begynne med distribuerte vi en grunnleggende bot, deretter utforsket vi potensialet til aliaser og versjoner og hvordan man bruker dem effektivt med maler. Deretter lærte vi hvordan vi integrerer en Lambda-funksjon med en Amazon Lex V2-bot og implementerte betinget forgrening i botens samtaleflyt for å imøtekomme forretningskrav. Til slutt la vi til loggingsfunksjoner ved å opprette en CloudWatch-logggrupperessurs og oppdatere robotens rolle med de nødvendige tillatelsene.

Malen gir mulighet for enkel distribusjon og administrasjon av boten, med muligheten til å tilbakestille endringer etter behov. Totalt sett er CloudFormation-malen nyttig for å administrere og optimalisere en Amazon Lex V2-bot.

Som neste trinn kan du utforske eksempel Amazon Lex-roboter og bruk teknikkene som er omtalt i dette innlegget for å konvertere dem til CloudFormation-maler. Denne praktiske praksisen vil styrke din forståelse av å administrere Amazon Lex V2-roboter gjennom infrastruktur som kode.


Om forfatterne

Administrer Amazon Lex-boten din via AWS CloudFormation-maler | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Thomas Rindfuss er senior løsningsarkitekt på Amazon Lex-teamet. Han finner opp, utvikler, prototyper og evangeliserer nye tekniske funksjoner og løsninger for Language AI-tjenester som forbedrer kundeopplevelsen og letter adopsjonen.

Administrer Amazon Lex-boten din via AWS CloudFormation-maler | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Rijeesh Akkambeth Chathoth er en profesjonell tjenestekonsulent hos AWS. Han hjelper kundene med å oppnå ønsket virksomhet
resultater i kontaktsenteret ved å utnytte funksjonene Amazon Connect, Amazon Lex og GenAI.

Tidstempel:

Mer fra AWS maskinlæring