I dagens digitala värld vill de flesta konsumenter hellre hitta svar på sina kundtjänstfrågor på egen hand snarare än att ta sig tid att nå ut till företag och/eller tjänsteleverantörer. Det här blogginlägget utforskar en innovativ lösning för att bygga en chatbot för frågor och svar Amazon Lex som använder befintliga vanliga frågor från din webbplats. Detta AI-drivna verktyg kan ge snabba, exakta svar på verkliga förfrågningar, vilket gör att kunden snabbt och enkelt kan lösa vanliga problem självständigt.
Enstaka URL-inmatning
Många företag har en publicerad uppsättning svar på vanliga frågor för sina kunder tillgängliga på deras webbplats. I det här fallet vill vi erbjuda kunderna en chatbot som kan svara på deras frågor från våra publicerade vanliga frågor. I blogginlägget med titeln Förbättra Amazon Lex med vanliga vanliga samtalsfunktioner med hjälp av LLM, visade vi hur du kan använda en kombination av Amazon Lex och LlamaIndex för att bygga en chatbot som drivs av dina befintliga kunskapskällor, som PDF- eller Word-dokument. För att stödja en enkel FAQ, baserad på en webbplats med vanliga frågor, måste vi skapa en inmatningsprocess som kan genomsöka webbplatsen och skapa inbäddningar som kan användas av LlamaIndex för att svara på kundfrågor. I det här fallet kommer vi att bygga på boten som skapats i föregående blogginlägg, som frågar efter dessa inbäddningar med en användares yttrande och returnerar svaret från webbplatsens vanliga frågor.
Följande diagram visar hur intagsprocessen och Amazon Lex-boten fungerar tillsammans för vår lösning.
I lösningens arbetsflöde intas webbplatsen med FAQs via AWS Lambda. Denna Lambda-funktion genomsöker webbplatsen och lagrar den resulterande texten i en Amazon enkel lagringstjänst (Amazon S3) hink. S3-skopan utlöser sedan en Lambda-funktion som använder LlamaIndex för att skapa inbäddningar som lagras i Amazon S3. När en fråga från en slutanvändare kommer, till exempel "Vad är din returpolicy?", använder Amazon Lex-boten sin Lambda-funktion för att fråga inbäddningarna med en RAG-baserad metod med LlamaIndex. För mer information om detta tillvägagångssätt och förutsättningarna, se blogginlägget, Förbättra Amazon Lex med vanliga vanliga samtalsfunktioner med hjälp av LLM.
Efter att förutsättningarna från ovannämnda blogg är klara är det första steget att mata in de vanliga frågorna i ett dokumentarkiv som kan vektoriseras och indexeras av LlamaIndex. Följande kod visar hur du gör detta:
I det föregående exemplet tar vi en fördefinierad FAQ-webbadress från Zappos och matar in den med hjälp av EZWebLoader
klass. Med den här klassen har vi navigerat till URL:en och laddat alla frågor som finns på sidan till ett index. Vi kan nu ställa en fråga som "Har Zappos presentkort?" och få svaren direkt från våra vanliga frågor på webbplatsen. Följande skärmdump visar Amazon Lex-bottestkonsolen som svarar på den frågan från vanliga frågor.
Vi kunde uppnå detta eftersom vi hade genomsökt webbadressen i det första steget och skapat inbäddningar som LlamaIndex kunde använda för att söka efter svaret på vår fråga. Vår bots Lambda-funktion visar hur den här sökningen körs när reservavsikten returneras:
Denna lösning fungerar bra när en enda webbsida har alla svar. De flesta FAQ-webbplatser är dock inte byggda på en enda sida. Till exempel, i vårt Zappos-exempel, om vi ställer frågan "Har du en prismatchningspolicy?", får vi ett mindre än tillfredsställande svar, som visas i följande skärmdump.
I föregående interaktion är svaret på prismatchningspolicyn inte till hjälp för vår användare. Det här svaret är kort eftersom de vanliga frågorna som hänvisas till är en länk till en specifik sida om prismatchningspolicyn och vår webbgenomsökning gällde endast den enskilda sidan. Att uppnå bättre svar kommer att innebära att man genomsöker dessa länkar också. Nästa avsnitt visar hur du får svar på frågor som kräver två eller flera nivåer av siddjup.
N-nivå krypning
När vi genomsöker en webbsida för kunskap om vanliga frågor kan den information vi vill ha finnas på länkade sidor. Till exempel, i vårt Zappos-exempel ställer vi frågan "Har du en prismatchningspolicy?" och svaret är "Ja snälla besök att lära sig mer." Om någon frågar "Vad är din prismatchningspolicy?" då vill vi ge ett fullständigt svar med policyn. Att uppnå detta innebär att vi måste gå igenom länkar för att få den faktiska informationen för vår slutanvändare. Under inmatningsprocessen kan vi använda vår webbläsare för att hitta ankarlänkarna till andra HTML-sidor och sedan gå igenom dem. Följande kodändring av vår sökrobot gör att vi kan hitta länkar på sidorna vi genomsöker. Den innehåller också ytterligare logik för att undvika cirkulär genomsökning och tillåta ett filter med ett prefix.
I den föregående koden introducerar vi möjligheten att genomsöka N nivåer djupt, och vi ger ett prefix som gör att vi kan begränsa genomsökningen till bara saker som börjar med ett visst webbadressmönster. I vårt Zappos-exempel är alla kundtjänstsidor rotade från zappos.com/c
, så vi inkluderar det som ett prefix för att begränsa våra genomsökningar till en mindre och mer relevant delmängd. Koden visar hur vi kan få i oss upp till två nivåer djupa. Vår bots Lambda-logik förblir densamma eftersom ingenting har förändrats förutom att sökroboten matar in fler dokument.
Vi har nu alla dokument indexerade och vi kan ställa en mer detaljerad fråga. I följande skärmdump ger vår bot det korrekta svaret på frågan "Har du en prismatchningspolicy?"
Vi har nu ett komplett svar på vår fråga om prismatchning. Istället för att bara få höra "Ja, se vår policy", ger den oss detaljerna från genomsökningen på andra nivån.
Städa upp
För att undvika framtida utgifter, fortsätt med att ta bort alla resurser som distribuerades som en del av denna övning. Vi har tillhandahållit ett skript för att stänga av Sagemaker-slutpunkten på ett elegant sätt. Användningsinformation finns i README. Dessutom, för att ta bort alla andra resurser du kan köra cdk destroy
i samma katalog som de andra cdk-kommandona för att ta bort alla resurser i din stack.
Slutsats
Möjligheten att lägga in en uppsättning vanliga frågor i en chatbot gör det möjligt för dina kunder att hitta svaren på sina frågor med enkla, naturliga språkfrågor. Genom att kombinera det inbyggda stödet i Amazon Lex för reservhantering med en RAG-lösning som ett LlamaIndex, kan vi tillhandahålla en snabb väg för våra kunder att få tillfredsställande, utvalda och godkända svar på vanliga frågor. Genom att tillämpa N-nivå genomsökning i vår lösning kan vi tillåta svar som eventuellt kan sträcka sig över flera FAQ-länkar och ge djupare svar på våra kunders frågor. Genom att följa dessa steg kan du sömlöst integrera kraftfulla LLM-baserade Q och A-funktioner och effektiv URL-inmatning i din Amazon Lex chatbot. Detta resulterar i mer exakta, heltäckande och kontextmedvetna interaktioner med användare.
Om författarna
Max Henkel-Wallace är mjukvaruutvecklingsingenjör på AWS Lex. Han tycker om att arbeta med teknik för att maximera kundernas framgång. Utanför jobbet brinner han för att laga mat, umgås med vänner och backpacka.
Låten Feng är senior tillämpad forskare vid AWS AI Labs, specialiserad på naturlig språkbehandling och artificiell intelligens. Hennes forskning utforskar olika aspekter av dessa områden, inklusive dokumentbaserad dialogmodellering, resonemang för uppgiftsorienterade dialoger och interaktiv textgenerering med hjälp av multimodala data.
John Baker är en Principal SDE på AWS där han arbetar med Natural Language Processing, Large Language Models och andra ML/AI-relaterade projekt. Han har varit hos Amazon i 9+ år och har arbetat med AWS, Alexa och Amazon.com. På sin fritid tycker John om att åka skidor och andra utomhusaktiviteter i hela Pacific Northwest.
- 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. Fordon / elbilar, Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- BlockOffsets. Modernisera miljökompensation ägande. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/enhance-amazon-lex-with-llms-and-improve-the-faq-experience-using-url-ingestion/
- : har
- :är
- :inte
- :var
- $UPP
- 1
- 10
- 100
- 12
- 14
- 16
- 19
- 23
- 36
- 7
- 80
- a
- förmåga
- Able
- Om oss
- åstadkomma
- exakt
- Uppnå
- uppnå
- tvärs
- aktiviteter
- faktiska
- Annat
- Dessutom
- AI
- AI-powered
- alexa
- Alla
- tillåter
- tillåta
- tillåter
- redan
- också
- amason
- Amazon Lex
- Amazon Web Services
- Amazon.com
- an
- Ankare
- och
- svara
- svar
- tillämpas
- Tillämpa
- tillvägagångssätt
- godkänd
- ÄR
- Ankommer
- konstgjord
- artificiell intelligens
- AS
- aspekter
- At
- tillgänglig
- undvika
- medveten
- AWS
- tillbaka
- bas
- baserat
- BE
- därför att
- varit
- börja
- Där vi får lov att vara utan att konstant prestera,
- Bättre
- Blogg
- kropp
- Bot
- SLUTRESULTAT
- byggt
- inbyggd
- företag
- by
- KAN
- kapacitet
- Kort
- Vid
- vissa
- byta
- ändrats
- chatbot
- kontroll
- klass
- klient
- Stäng
- koda
- COM
- kombination
- kombinera
- kommande
- Gemensam
- fullborda
- omfattande
- Konsol
- konsumenter
- innehöll
- innehåll
- innehåll
- sammanhang
- konversera
- konvertera
- omvandling
- korrekt
- kunde
- Motverka
- sökrobot
- skapa
- skapas
- kurerad
- kund
- Kundservice
- Kundsucces
- Kunder
- cykler
- datum
- djup
- djupare
- Standard
- demonstreras
- utplacerade
- djup
- detaljerad
- detaljer
- Utveckling
- dialog
- digital
- digital värld
- direkt
- dokumentera
- dokument
- ner
- ladda ner
- dubbletter
- under
- e
- varje
- lätt
- effektiv
- annars
- möjliggör
- änden
- Slutpunkt
- ingenjör
- förbättra
- företag
- inträde
- händelse
- exempel
- Utom
- undantag
- Motionera
- befintliga
- kostnader
- erfarenhet
- utforskar
- FAQ
- Funktioner
- Fält
- Filer
- filtrera
- hitta
- Förnamn
- efter
- För
- hittade
- vänner
- från
- fungera
- framtida
- generering
- skaffa sig
- present
- presentkort
- Ge
- ges
- ger
- Go
- hade
- Arbetsmiljö
- Har
- he
- headers
- hjälp
- här
- hans
- Hur ser din drömresa ut
- How To
- Men
- html
- http
- HTTPS
- if
- importera
- förbättra
- in
- innefattar
- innefattar
- Inklusive
- Inkommande
- införliva
- oberoende av
- index
- indexeras
- info
- informationen
- innovativa
- ingång
- förfrågningar
- exempel
- istället
- Intelligens
- uppsåt
- interaktion
- interaktioner
- interaktiva
- in
- införa
- IT
- DESS
- John
- jpg
- json
- Nyckel
- kunskap
- Labs
- språk
- Large
- LÄRA SIG
- Nivå
- nivåer
- hävstångs
- tycka om
- BEGRÄNSA
- LINK
- kopplade
- länkar
- linux
- Lista
- läsa in
- Lastaren
- lokal
- lokalt
- skogsavverkning
- Logiken
- matchas
- matchande
- Maximera
- betyda
- betyder
- meddelande
- meddelanden
- modellering
- modeller
- mer
- mest
- multipel
- namn
- Natural
- Naturlig språkbehandling
- Behöver
- Nästa
- inget
- nu
- antal
- objekt
- of
- erbjudanden
- on
- ONE
- endast
- or
- OS
- Övriga
- vår
- ut
- utanför
- egen
- stilla havet
- sida
- sidor
- del
- brinner
- bana
- Mönster
- plato
- Platon Data Intelligence
- PlatonData
- snälla du
- policy
- eventuellt
- Inlägg
- drivs
- den mäktigaste
- förhindra
- pris
- Principal
- problem
- process
- bearbetning
- projekt
- ge
- förutsatt
- leverantörer
- ger
- publicerade
- sökfrågor
- fråga
- frågor
- Snabbt
- snabbt
- höja
- snarare
- RE
- nå
- läsare
- verkliga världen
- relaterad
- relevanta
- resterna
- ta bort
- Repository
- begära
- förfrågningar
- kräver
- forskning
- Resurser
- respons
- svar
- begränsa
- resulterande
- Resultat
- avkastning
- återgår
- rot
- Rutt
- Körning
- s
- sagemaker
- Samma
- Forskare
- sömlöst
- Sök
- §
- se
- SJÄLV
- senior
- service
- tjänsteleverantörer
- Tjänster
- in
- Kort
- visas
- Visar
- stänga
- Enkelt
- helt enkelt
- enda
- webbplats
- Områden
- spelautomater
- mindre
- So
- Mjukvara
- mjukvaruutveckling
- lösning
- LÖSA
- några
- någon
- Källor
- span
- specialiserat
- specifik
- Spendera
- stapel
- starta
- Steg
- Steg
- förvaring
- lagra
- lagras
- lagrar
- okomplicerad
- framgång
- sådana
- stödja
- SYS
- Ta
- tar
- Teknologi
- testa
- än
- den där
- Smakämnen
- den information
- deras
- Dem
- sedan
- Dessa
- saker
- detta
- de
- hela
- tid
- betitlad
- till
- dagens
- tillsammans
- verktyg
- behandla
- sann
- prova
- två
- Typ
- URL
- us
- Användning
- användning
- Begagnade
- Användare
- användare
- användningar
- med hjälp av
- olika
- via
- Besök
- besökta
- vill
- var
- we
- webb
- webbservice
- Webbplats
- VÄL
- były
- när
- närhelst
- som
- kommer
- med
- ord
- Arbete
- jobba tillsammans
- arbetade
- arbetsflöde
- arbetssätt
- fungerar
- världen
- skulle
- skriven
- X11
- år
- Om er
- Din
- zephyrnet