I dagens digitale verden vil de fleste forbrugere hellere finde svar på deres kundeservicespørgsmål på egen hånd frem for at tage sig tid til at nå ud til virksomheder og/eller tjenesteudbydere. Dette blogindlæg udforsker en innovativ løsning til at bygge en spørgsmål og svar chatbot i Amazon Lex der bruger eksisterende ofte stillede spørgsmål fra dit websted. Dette AI-drevne værktøj kan give hurtige, præcise svar på forespørgsler fra den virkelige verden, hvilket giver kunden mulighed for hurtigt og nemt at løse almindelige problemer uafhængigt.
Enkelt URL-indtagelse
Mange virksomheder har et offentliggjort sæt svar på ofte stillede spørgsmål til deres kunder tilgængeligt på deres hjemmeside. I dette tilfælde ønsker vi at tilbyde kunderne en chatbot, der kan besvare deres spørgsmål fra vores offentliggjorte ofte stillede spørgsmål. I blogindlægget med titlen Forbedre Amazon Lex med samtalefunktioner med ofte stillede spørgsmål ved hjælp af LLM'er, viste vi, hvordan du kan bruge en kombination af Amazon Lex og LlamaIndex til at bygge en chatbot drevet af dine eksisterende videnskilder, såsom PDF- eller Word-dokumenter. For at understøtte en simpel FAQ, baseret på et websted med ofte stillede spørgsmål, skal vi oprette en indlæsningsproces, der kan crawle webstedet og oprette indlejringer, der kan bruges af LlamaIndex til at besvare kundespørgsmål. I dette tilfælde vil vi bygge videre på den bot, der er oprettet i forrige blogindlæg, som forespørger på disse indlejringer med en brugers ytring og returnerer svaret fra webstedets ofte stillede spørgsmål.
Følgende diagram viser, hvordan indtagelsesprocessen og Amazon Lex-bot fungerer sammen for vores løsning.
I løsningens workflow indtages hjemmesiden med FAQs via AWS Lambda. Denne Lambda-funktion gennemgår hjemmesiden og gemmer den resulterende tekst i en Amazon Simple Storage Service (Amazon S3) spand. S3-bøtten udløser derefter en Lambda-funktion, der bruger LlamaIndex til at skabe indlejringer, der er gemt i Amazon S3. Når et spørgsmål fra en slutbruger ankommer, såsom "Hvad er din returpolitik?", bruger Amazon Lex-botten sin Lambda-funktion til at forespørge om indlejringerne ved hjælp af en RAG-baseret tilgang med LlamaIndex. For mere information om denne tilgang og forudsætningerne henvises til blogindlægget, Forbedre Amazon Lex med samtalefunktioner med ofte stillede spørgsmål ved hjælp af LLM'er.
Når forudsætningerne fra den førnævnte blog er fuldført, er det første skridt at indlæse ofte stillede spørgsmål i et dokumentlager, der kan vektoriseres og indekseres af LlamaIndex. Følgende kode viser, hvordan du opnår dette:
I det foregående eksempel tager vi en foruddefineret FAQ-websteds-URL fra Zappos og indtager den ved hjælp af EZWebLoader
klasse. Med denne klasse har vi navigeret til URL'en og indlæst alle de spørgsmål, der er på siden, i et indeks. Vi kan nu stille et spørgsmål som "Har Zappos gavekort?" og få svarene direkte fra vores ofte stillede spørgsmål på hjemmesiden. Følgende skærmbillede viser Amazon Lex bot-testkonsollen, der besvarer det spørgsmål fra ofte stillede spørgsmål.
Vi var i stand til at opnå dette, fordi vi havde crawlet URL'en i det første trin og oprettet indlejringer, som LlamaIndex kunne bruge til at søge efter svaret på vores spørgsmål. Vores bots Lambda-funktion viser, hvordan denne søgning køres, når reservehensigten returneres:
Denne løsning fungerer godt, når en enkelt webside har alle svarene. De fleste ofte stillede spørgsmål er dog ikke bygget på en enkelt side. For eksempel, i vores Zappos-eksempel, hvis vi stiller spørgsmålet "Har du en prismatchingpolitik?", så får vi et mindre end tilfredsstillende svar, som vist på det følgende skærmbillede.
I den foregående interaktion er svaret på prismatch-politikken ikke nyttigt for vores bruger. Dette svar er kort, fordi de ofte stillede spørgsmål, der henvises til, er et link til en specifik side om prismatchningspolitikken, og vores webcrawl var kun for den enkelte side. At opnå bedre svar vil betyde, at man også skal gennemgå disse links. Det næste afsnit viser, hvordan du får svar på spørgsmål, der kræver to eller flere niveauer af sidedybde.
N-niveau kravling
Når vi gennemgår en webside for at få viden om ofte stillede spørgsmål, kan den information, vi ønsker, være indeholdt på linkede sider. For eksempel stiller vi i vores Zappos-eksempel spørgsmålet "Har du en prismatchingpolitik?" og svaret er "Ja, besøg venligst at lære mere." Hvis nogen spørger "Hvad er din prismatchingpolitik?" så vil vi give et fuldstændigt svar med politikken. At opnå dette betyder, at vi har behov for at krydse links for at få den faktiske information til vores slutbruger. Under indtagelsesprocessen kan vi bruge vores webindlæser til at finde ankerlinkene til andre HTML-sider og derefter krydse dem. Følgende kodeændring til vores webcrawler giver os mulighed for at finde links på de sider, vi gennemgår. Det indeholder også noget ekstra logik for at undgå cirkulær gennemgang og tillade et filter efter et præfiks.
I den foregående kode introducerer vi muligheden for at crawle N niveauer dybt, og vi giver et præfiks, der giver os mulighed for at begrænse crawl til kun ting, der begynder med et bestemt URL-mønster. I vores Zappos-eksempel er alle kundeservicesiderne forankret fra zappos.com/c
, så vi inkluderer det som et præfiks for at begrænse vores gennemgange til en mindre og mere relevant undergruppe. Koden viser, hvordan vi kan indtage op til to niveauer dybt. Vores bots Lambda-logik forbliver den samme, fordi intet er ændret, undtagen at crawleren indtager flere dokumenter.
Vi har nu alle dokumenterne indekseret, og vi kan stille et mere detaljeret spørgsmål. I det følgende skærmbillede giver vores bot det korrekte svar på spørgsmålet "Har du en prismatchingpolitik?"
Vi har nu et komplet svar på vores spørgsmål om prismatching. I stedet for blot at få at vide "Ja, se vores politik", giver det os detaljerne fra gennemgangen på andet niveau.
Ryd op
For at undgå fremtidige udgifter skal du fortsætte med at slette alle de ressourcer, der blev implementeret som en del af denne øvelse. Vi har leveret et script til at lukke Sagemaker-endepunktet på en yndefuld måde. Brugsoplysninger findes i README. Derudover for at fjerne alle de andre ressourcer, du kan køre cdk destroy
i samme mappe som de andre cdk-kommandoer for at deprovisionere alle ressourcerne i din stak.
Konklusion
Evnen til at indsætte et sæt ofte stillede spørgsmål i en chatbot gør det muligt for dine kunder at finde svarene på deres spørgsmål med enkle, naturlige sprogforespørgsler. Ved at kombinere den indbyggede support i Amazon Lex til fallback-håndtering med en RAG-løsning, såsom et LlamaIndex, kan vi give vores kunder en hurtig vej til at få tilfredsstillende, kuraterede og godkendte svar på ofte stillede spørgsmål. Ved at anvende N-niveau crawling i vores løsning, kan vi tillade svar, der muligvis kan spænde over flere FAQ-links og give dybere svar på vores kunders forespørgsler. Ved at følge disse trin kan du problemfrit inkorporere kraftfulde LLM-baserede Q og A-funktioner og effektiv URL-indtagelse i din Amazon Lex chatbot. Dette resulterer i mere præcise, omfattende og kontekstuelt bevidste interaktioner med brugere.
Om forfatterne
Max Henkel-Wallace er softwareudviklingsingeniør hos AWS Lex. Han nyder at arbejde ved at udnytte teknologi til at maksimere kundernes succes. Uden for arbejdet brænder han for at lave mad, tilbringe tid med venner og rygsæk.
Sangen Feng er Senior Applied Scientist ved AWS AI Labs, med speciale i Natural Language Processing og Artificial Intelligence. Hendes forskning udforsker forskellige aspekter af disse felter, herunder dokumentbaseret dialogmodellering, ræsonnement for opgaveorienterede dialoger og interaktiv tekstgenerering ved hjælp af multimodale data.
John bager er Principal SDE hos AWS, hvor han arbejder med Natural Language Processing, Large Language Models og andre ML/AI-relaterede projekter. Han har været hos Amazon i mere end 9 år og har arbejdet på tværs af AWS, Alexa og Amazon.com. I sin fritid nyder John at stå på ski og andre udendørsaktiviteter i hele Pacific Northwest.
- 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. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/enhance-amazon-lex-with-llms-and-improve-the-faq-experience-using-url-ingestion/
- :har
- :er
- :ikke
- :hvor
- $OP
- 1
- 10
- 100
- 12
- 14
- 16
- 19
- 23
- 36
- 7
- 80
- a
- evne
- I stand
- Om
- udrette
- præcis
- opnå
- opnå
- tværs
- aktiviteter
- faktiske
- Yderligere
- Derudover
- AI
- AI-drevne
- Alexa
- Alle
- tillade
- tillade
- tillader
- allerede
- også
- Amazon
- Amazon Lex
- Amazon Web Services
- Amazon.com
- an
- Anchor
- ,
- besvare
- svar
- anvendt
- Anvendelse
- tilgang
- godkendt
- ER
- Ankommer
- kunstig
- kunstig intelligens
- AS
- aspekter
- At
- til rådighed
- undgå
- opmærksom på
- AWS
- tilbage
- bund
- baseret
- BE
- fordi
- været
- begynde
- være
- Bedre
- Blog
- krop
- Bot
- bygge
- bygget
- indbygget
- virksomheder
- by
- CAN
- kapaciteter
- Kort
- tilfælde
- vis
- lave om
- ændret
- chatbot
- kontrol
- klasse
- kunde
- Luk
- kode
- KOM
- kombination
- kombinerer
- kommer
- Fælles
- fuldføre
- omfattende
- Konsol
- Forbrugere
- indeholdt
- indhold
- indhold
- sammenhæng
- konversation
- konvertere
- konvertering af
- korrigere
- kunne
- Counter
- crawler
- skabe
- oprettet
- kurateret
- kunde
- Kundeservice
- Kundesucces
- Kunder
- cykler
- data
- dyb
- dybere
- Standard
- demonstreret
- indsat
- dybde
- detaljeret
- detaljer
- Udvikling
- Dialog
- digital
- digital verden
- direkte
- dokumentet
- dokumenter
- ned
- downloade
- dubletter
- i løbet af
- e
- hver
- nemt
- effektiv
- andet
- muliggør
- ende
- Endpoint
- ingeniør
- forbedre
- virksomheder
- indrejse
- begivenhed
- eksempel
- Undtagen
- undtagelse
- Dyrke motion
- eksisterende
- udgifter
- erfaring
- udforsker
- FAQ
- Funktionalitet
- Fields
- Filer
- filtrere
- Finde
- Fornavn
- efter
- Til
- fundet
- venner
- fra
- funktion
- fremtiden
- generation
- få
- gave
- gavekort
- Giv
- given
- giver
- Go
- havde
- Håndtering
- Have
- he
- headers
- hjælpsom
- hende
- hans
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- if
- importere
- Forbedre
- in
- omfatter
- omfatter
- Herunder
- Indgående
- indarbejde
- uafhængigt
- indeks
- indekseret
- info
- oplysninger
- innovativ
- indgang
- Forespørgsler
- instans
- i stedet
- Intelligens
- hensigt
- interaktion
- interaktioner
- interaktiv
- ind
- indføre
- IT
- ITS
- John
- jpg
- json
- Nøgle
- viden
- Labs
- Sprog
- stor
- LÆR
- Niveau
- niveauer
- løftestang
- ligesom
- GRÆNSE
- LINK
- forbundet
- links
- linux
- Liste
- belastning
- loader
- lokale
- lokalt
- logning
- logik
- matchede
- matchende
- Maksimer
- betyde
- midler
- besked
- beskeder
- modellering
- modeller
- mere
- mest
- flere
- navn
- Natural
- Natural Language Processing
- Behov
- næste
- intet
- nu
- nummer
- objekter
- of
- tilbyde
- on
- ONE
- kun
- or
- OS
- Andet
- vores
- ud
- uden for
- egen
- Pacific
- side
- sider
- del
- lidenskabelige
- sti
- Mønster
- plato
- Platon Data Intelligence
- PlatoData
- Vær venlig
- politik
- eventuelt
- Indlæg
- strøm
- vigtigste
- forhindre
- pris
- Main
- problemer
- behandle
- forarbejdning
- projekter
- give
- forudsat
- udbydere
- giver
- offentliggjort
- forespørgsler
- spørgsmål
- Spørgsmål
- Hurtig
- hurtigt
- rejse
- hellere
- RE
- nå
- læsere
- virkelige verden
- relaterede
- relevant
- resterne
- Fjern
- Repository
- anmode
- anmodninger
- kræver
- forskning
- Ressourcer
- svar
- reaktioner
- begrænse
- resulterer
- Resultater
- afkast
- afkast
- rod
- R
- Kør
- s
- sagemaker
- samme
- Videnskabsmand
- problemfrit
- Søg
- Sektion
- se
- SELV
- senior
- tjeneste
- service-udøvere
- Tjenester
- sæt
- Kort
- vist
- Shows
- Luk ned
- Simpelt
- ganske enkelt
- enkelt
- websted
- Websteder
- spillemaskiner
- mindre
- So
- Software
- softwareudvikling
- løsninger
- SOLVE
- nogle
- Nogen
- Kilder
- span
- speciale
- specifikke
- udgifterne
- stable
- starte
- Trin
- Steps
- opbevaring
- butik
- opbevaret
- forhandler
- ligetil
- succes
- sådan
- support
- SYS
- Tag
- tager
- Teknologier
- prøve
- end
- at
- oplysninger
- deres
- Them
- derefter
- Disse
- ting
- denne
- dem
- hele
- tid
- titlen
- til
- nutidens
- sammen
- værktøj
- behandle
- sand
- prøv
- to
- typen
- URL
- us
- Brug
- brug
- anvendte
- Bruger
- brugere
- bruger
- ved brug af
- forskellige
- via
- Besøg
- besøgte
- ønsker
- var
- we
- web
- webservices
- Hjemmeside
- GODT
- var
- hvornår
- når
- som
- vilje
- med
- ord
- Arbejde
- arbejde sammen
- arbejdede
- workflow
- arbejder
- virker
- world
- ville
- skriftlig
- X11
- år
- Du
- Din
- zephyrnet