Amazon Lex
Amazon Lex
Serwis do budowania chatbotow i voicebotow. Ta sama technologia co Alexa - rozpoznawanie intencji, konwersacje wieloetapowe i integracja z Lambda.
Amazon Lex to serwis do budowania konwersacyjnych interfejsow (chatbotow i voicebotow) wykorzystujacy te sama technologie deep learning co Alexa. Lex rozumie intencje uzytkownika (Intents), wyciaga z wypowiedzi parametry (Slots) i realizuje akcje (Fulfillment) - np. wywoluje funkcje Lambda.
Lex V2 to najnowsza wersja, ktora oferuje znacznie lepsze narzedzia do projektowania konwersacji: multi-turn dialogi, wbudowane typy slotow, konteksty konwersacyjne i latwa integracja z Amazon Connect (contact center) oraz platformami messaging.
Amazon Lex wykorzystuje te sama technologie co Alexa, ktora obsluguje ponad 500 milionow urzadzen na swiecie. Lex V2 obsluguje wielojezyczne boty - jeden bot moze rozumiec wiele jezykow jednoczesnie. Mozesz zbudowac dzialajacego chatbota bez pisania ani jednej linii kodu, uzywajac tylko konsoli AWS.
Zawsze uzywaj Lex V2 (nie V1) - ma lepsza konsole, wersjowanie botow i bardziej rozbudowane API. Dla prostych pytan FAQ zintegruj Lex z Amazon Kendra (wyszukiwanie w dokumentach). Testuj bota dokladnie z roznymi wariantami wypowiedzi - uzytkownicy nigdy nie mowia dokladnie tak, jak planujesz.
Lex to serwis do budowania konwersacyjnych interfejsow (chatbotow i voicebotow) z rozumieniem jezyka naturalnego. Ten sam silnik napedza Alexe od Amazona. Lex V2 to aktualna wersja z ulepszona obsluga wielu jezykow i kontekstow.
Projektowanie intencji (Intents)
Intent to akcja, ktora uzytkownik chce wykonac (np. BookHotel, CheckBalance, OrderPizza). Kazdy intent definiujesz z: przykladowymi wypowiedziami (utterances), slotami (parametry do zebrania), potwierdzeniem i realizacja. Bot moze miec dziesiatki intentow. FallbackIntent obsluguje nierozpoznane wypowiedzi - nie zostawiaj go domyslnego.
Definiowanie slotow (Slots)
Sloty to parametry, ktore bot musi zebrac od uzytkownika. Np. intent BookHotel potrzebuje slotow: City, CheckInDate, Nights, RoomType. Kazdy slot ma typ (wbudowany: AMAZON.Date, AMAZON.City, AMAZON.Number lub custom), prompt (pytanie do uzytkownika) i walidacje. Lex automatycznie pyta o brakujace sloty (slot elicitation).
Konfiguracja dialogu (Conversation flow)
Lex V2 oferuje zaawansowane sterowanie dialogiem: Conditional branches (rozna sciezka w zaleznosci od wartosci slotu), Confirmation prompts (potwierdzenie przed realizacja), Slot priorities (kolejnosc zbierania), Initial response (odpowiedz przed zbieraniem slotow). Visual Conversation Builder w konsoli pozwala projektowac flow graficznie.
Rozpoznawanie intencji (NLU)
Gdy uzytkownik pisze lub mowi, Lex uzywa modelu NLU do: rozpoznania intencji (z confidence score), ekstrakcji wartosci slotow z wypowiedzi, obslulgi kontekstu konwersacji. Przykladowe utterances trenuja model - dodaj min. 10-15 wariantow na intent. Lex obsluguje multi-turn conversations - pamienia kontekst z poprzednich wymian.
Realizacja przez Lambda (Fulfillment)
Po zebraniu slotow i potwierdzeniu, Lex wywoluje Lambda function do realizacji. Lambda otrzymuje JSON z intentem, slotami i sesja. Moze: wywolac API (np. zarezerwowac hotel), odczytac dane z bazy, wywolac Step Functions dla zlozonych workflow. Lambda zwraca odpowiedz tekstowa i opcjonalnie modyfikuje stan sesji.
Integracja z kanalami
Lex integruje sie z: Amazon Connect (voicebot IVR), Facebook Messenger, Slack, Twilio SMS, Kik. Dla custom kanalow uzywaj API PutSession/RecognizeText/RecognizeUtterance. Lex automatycznie obsluguje konwersje mowa-tekst (przez Transcribe) i tekst-mowa (przez Polly) - budowanie voicebota nie wymaga dodatkowej konfiguracji.
Budowanie chatbota, ktory naprawde dziala w produkcji, wymaga wiecej niz zdefiniowania intentow. Ponizej wskazowki dotyczace projektowania konwersacji, obslugi bledow i optymalizacji doswiadczenia uzytkownika.
Projektuj Fallback Intent starannie
FallbackIntent to najwazniejszy intent w bocie - obsluguje wszystko, czego bot nie rozumie. Domyslna odpowiedz "I didn't understand" jest nieakceptowalna w produkcji. Zamiast tego: zaproponuj dostepne opcje, przekieruj do czlowieka po 2-3 fallbackach z rzedu, loguj nierozpoznane wypowiedzi do S3 i analizuj je regularnie, aby dodawac nowe utterances i intenty.
PoczatkujacyUzywaj Session Attributes do kontekstu
Session Attributes to mapa klucz-wartosc przechowywana miedzy turami konwersacji. Uzywaj do: zapamietywania preferencji uzytkownika, przekazywania danych miedzy intentami, sledzenia stanu konwersacji. Np. po BookHotel zapisz city w sesji - w kolejnym intencie GetRestaurant bot moze zaproponowac restauracje w tym samym miescie bez ponownego pytania.
ZaawansowanyLambda validation hooks na slotach
Skonfiguruj Dialog Code Hook (Lambda) na slotach wymagajacych walidacji. Lambda moze: walidowac wartosc (np. data w przeszlosci jest niedozwolona), dynamicznie zmieniac prompt, ustawiac wartosc slotu programowo. Walidacja na poziomie Lex (regex, wartosci) jest ograniczona - Lambda daje pelna kontrole. Pamietaj o obsludze bledow w Lambda.
ZaawansowanyTestuj z prawdziwymi uzytkownikami, nie tylko utterances
Bot moze dzialac swietnie na zdefiniowanych utterances, ale zawodzi na prawdziwych wypowiedziach uzytkownikow. Publikuj wersje Draft do testow, zbieraj feedback, analizuj metryki: intent recognition accuracy, fallback rate, conversation completion rate. Cel: fallback rate ponizej 10%, completion rate powyzej 70%. Iteruj utterances na podstawie realnych danych.
PoczatkujacyMulti-language bot z Lex V2
Lex V2 obsluguje wiele jezykow w jednym bocie. Dodajesz jezyk (locale) i definiujesz utterances w kazdym jezyku osobno. Slot types sa per-locale. Bot automatycznie uzywa odpowiedniego modelu NLU na podstawie locale. Dla polskiego uzywaj locale pl_PL. Logika Lambda (fulfillment) jest wspolna - odpowiedz generuj w jezyku uzytkownika na podstawie locale z kontekstu.
ZaawansowanyWersjonowanie i aliasy dla bezpiecznych wdrozen
Nigdy nie modyfikuj wersji produkcyjnej bezposrednio. Pracuj na wersji Draft, testuj, a potem publikuj nowa wersje (numerowana). Aliasy (np. "prod", "staging") wskazuja na konkretna wersje. Aktualizuj alias "prod" na nowa wersje po testach. Jezeli cos nie dziala, przestaw alias z powrotem. Aliasy obsluguja tez routing ruchu (np. 90% stara wersja, 10% nowa).
PoczatkujacyScreenshoty z AWS Console
Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon Lex bezposrednio w konsoli AWS.
Do czego sluzy Amazon Lex?
Chatboty obslugi klienta
Automatyzuj odpowiedzi na czeste pytania, sprawdzanie statusu zamowien, resetowanie hasel i obsluge reklamacji.
Voiceboty w contact center
Zintegruj Lex z Amazon Connect, zeby obslugiwac rozmowy telefoniczne. Klienci mowia zamiast wciskac klawisze (IVR).
Asystenci wewnetrzni
Chatboty dla pracownikow: rezerwacja sal, zglaszanie urlopow, pytania o polityki firmowe, dostep do baz wiedzy.
Automatyzacja procesow
Boty do zbierania danych od uzytkownikow: formularze konwersacyjne, ankiety, kwalifikacja leadow sprzedazowych.
Co musisz wiedziec?
Intent (Intencja)
Cel, ktory uzytkownik chce osiagnac, np. "ZamowPizze", "SprawdzStatus", "ZarezerwujSale". Kazdy bot ma co najmniej jeden Intent.
Slot (Parametr)
Informacja potrzebna do realizacji intencji, np. rodzaj pizzy, numer zamowienia, data rezerwacji. Lex dopytuje o brakujace sloty.
Fulfillment (Realizacja)
Akcja wykonywana po zebraniu wszystkich slotow. Najczesciej wywolanie funkcji Lambda, ktora przetwarza dane i zwraca odpowiedz.
Sample Utterances
Przykladowe wypowiedzi uzytkownika mapowane na Intent, np. "Chce zamowic pizze", "Daj mi pizze", "Zamow pizze". Lex uczy sie rozpoznawac warianty.
Built-in Slot Types
Predefiniowane typy danych: AMAZON.Date, AMAZON.Number, AMAZON.City, AMAZON.PhoneNumber. Lex automatycznie rozpoznaje i waliduje te wartosci.
Lex V2
Najnowsza wersja z ulepszona konsola, wersjowaniem botow, wielojezycznoscia, kontekstami konwersacyjnymi i lepszym API.
Architektura: Chatbot obslugi klienta z Amazon Lex
Wielokanalowy chatbot obslugujacy zapytania klientow przez strone WWW, Messenger i telefon (IVR). Lex rozumie intencje, zbiera dane i realizuje akcje przez Lambda, z fallbackiem na zywy czat z konsultantem.
Ile kosztuje Amazon Lex?
Text Requests
Platnosc za kazde zapytanie tekstowe do bota.
$0.00075 za zapytanie tekstowe
Speech Requests
Platnosc za kazde zapytanie glosowe (speech-to-text + NLU).
$0.004 za zapytanie glosowe
Streaming Conversations
Platnosc za czas trwania konwersacji glosowej (streaming).
$0.004/zapytanie + streaming audio
Free Tier
10 000 zapytan tekstowych i 5000 glosowych miesiecznie przez 12 miesiecy.
Wystarczy na prototypowanie i testy
Przyklady AWS CLI
Utworz bota Lex V2
Tworzy nowego bota z podstawowa konfiguracja
aws lexv2-models create-bot \
--bot-name MojChatbot \
--role-arn arn:aws:iam::123456789012:role/LexBotRole \
--data-privacy "{\"childDirected\":false}" \
--idle-session-ttl-in-seconds 300
Wyslij wiadomosc do bota
Testuje bota wysylajac wiadomosc tekstowa
aws lexv2-runtime recognize-text \
--bot-id BOTID123 \
--bot-alias-id TSTALIASID \
--locale-id pl_PL \
--session-id sesja-testowa-001 \
--text "Chce zamowic pizze margherita"
Lista botow
Wyswietla wszystkie boty Lex V2 na koncie
aws lexv2-models list-bots \
--sort-by "{\"attribute\":\"BotName\",\"order\":\"Ascending\"}" \
--query "botSummaries[].{Name:botName,Id:botId,Status:botStatus}" \
--output table
Zbuduj wersje bota
Kompiluje bota - wymagane przed wdrozeniem
aws lexv2-models build-bot-locale \
--bot-id BOTID123 \
--bot-version DRAFT \
--locale-id pl_PL
Quiz: Amazon Lex
Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.
1. Co to jest Intent w Amazon Lex?
2. Jaka technologie wykorzystuje Amazon Lex?
3. Co to jest Slot w kontekscie Lex?
4. Ile zapytan tekstowych obejmuje Free Tier Lex?
Czesto uzywane razem z Amazon Lex
Chcesz poznac Amazon Lex w praktyce?
Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon Lex krok po kroku. Teoria + praktyka od zera.