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.
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:
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:
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:
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:
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.
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:
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
.
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.
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:
För att använda den här Lambda-funktionen för uppfyllelsen, aktivera kodkrokens inställningar i din avsikt:
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:
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:
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:
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.
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
:
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:
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.
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:
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:
Slutligen uppdaterar du ditt alias för att aktivera konversationslogginställningar:
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.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/manage-your-amazon-lex-bot-via-aws-cloudformation-templates/