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.
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:
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:
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:
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 Intents
begyndende 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:
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.
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:
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
.
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.
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:
For at bruge denne Lambda-funktion til opfyldelsen skal du aktivere indstillingerne for kodekrog i din hensigt:
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:
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:
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:
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.
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
:
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:
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.
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:
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:
Til sidst opdaterer du dit alias for at aktivere indstillinger for samtalelog:
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.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/manage-your-amazon-lex-bot-via-aws-cloudformation-templates/