In de digitale wereld van vandaag vinden de meeste consumenten liever zelf antwoorden op hun klantenservicevragen dan de tijd te nemen om contact op te nemen met bedrijven en/of dienstverleners. Deze blogpost onderzoekt een innovatieve oplossing om een โโvraag-en-antwoord-chatbot in te bouwen Amazon-Lex die gebruikmaakt van bestaande veelgestelde vragen van uw website. Deze AI-aangedreven tool kan snelle, nauwkeurige antwoorden geven op vragen uit de praktijk, waardoor de klant veelvoorkomende problemen zelfstandig snel en eenvoudig kan oplossen.
Eรฉn URL-opname
Veel bedrijven hebben een gepubliceerde reeks antwoorden op veelgestelde vragen voor hun klanten beschikbaar op hun website. In dit geval willen we klanten een chatbot aanbieden die hun vragen uit onze gepubliceerde FAQโs kan beantwoorden. In de blogpost met de titel Verbeter Amazon Lex met conversatiefuncties voor veelgestelde vragen met behulp van LLM'shebben we gedemonstreerd hoe je een combinatie van Amazon Lex en LlamaIndex kunt gebruiken om een โโchatbot te bouwen die wordt aangedreven door je bestaande kennisbronnen, zoals PDF- of Word-documenten. Om een โโeenvoudige FAQ te ondersteunen, gebaseerd op een website met veelgestelde vragen, moeten we een opnameproces creรซren dat de website kan crawlen en insluitingen kan creรซren die door LlamaIndex kunnen worden gebruikt om vragen van klanten te beantwoorden. In dit geval bouwen we voort op de bot die is gemaakt in de vorige blogbericht, dat deze insluitingen opvraagt โโmet de uiting van een gebruiker en het antwoord retourneert van de veelgestelde vragen over de website.
Het volgende diagram laat zien hoe het innameproces en de Amazon Lex-bot samenwerken voor onze oplossing.
In de oplossingsworkflow wordt de website met veelgestelde vragen opgenomen via AWS Lambda. Deze Lambda-functie doorzoekt de website en slaat de resulterende tekst op in een Amazon eenvoudige opslagservice (Amazon S3) bak. De S3-bucket activeert vervolgens een Lambda-functie die LlamaIndex gebruikt om insluitingen te maken die zijn opgeslagen in Amazon S3. Wanneer een vraag van een eindgebruiker binnenkomt, zoals โWat is uw retourbeleid?โ, gebruikt de Amazon Lex-bot zijn Lambda-functie om de inbedding te bevragen met behulp van een RAG-gebaseerde aanpak met LlamaIndex. Voor meer informatie over deze aanpak en de vereisten raadpleegt u de blogpost: Verbeter Amazon Lex met conversatiefuncties voor veelgestelde vragen met behulp van LLM's.
Nadat aan de vereisten van de bovengenoemde blog is voldaan, is de eerste stap het opnemen van de veelgestelde vragen in een documentopslagplaats die kan worden gevectoriseerd en geรฏndexeerd door LlamaIndex. De volgende code laat zien hoe u dit kunt bereiken:
In het voorgaande voorbeeld nemen we een vooraf gedefinieerde FAQ-website-URL van Zappos en nemen deze op met behulp van de EZWebLoader
klas. Met deze klasse zijn we naar de URL genavigeerd en alle vragen op de pagina in een index geladen. We kunnen nu een vraag stellen als โHeeft Zappos cadeaubonnen?โ en krijg de antwoorden rechtstreeks van onze veelgestelde vragen op de website. De volgende schermafbeelding toont de Amazon Lex-bottestconsole die deze vraag uit de veelgestelde vragen beantwoordt.
We konden dit bereiken omdat we in de eerste stap de URL hadden gecrawld en embedddings hadden gemaakt die LlamaIndex kon gebruiken om naar het antwoord op onze vraag te zoeken. De Lambda-functie van onze bot laat zien hoe deze zoekopdracht wordt uitgevoerd wanneer de fallback-intentie wordt geretourneerd:
Deze oplossing werkt goed als รฉรฉn enkele webpagina alle antwoorden bevat. De meeste FAQ-sites zijn echter niet op รฉรฉn pagina gebouwd. Als we in ons Zappos-voorbeeld bijvoorbeeld de vraag stellen: โHeeft u een prijsmatchingsbeleid?โ, krijgen we een minder dan bevredigend antwoord, zoals weergegeven in de volgende schermafbeelding.
In de voorgaande interactie is het antwoord op het beleid voor prijsmatching niet nuttig voor onze gebruiker. Dit antwoord is kort omdat de veelgestelde vraag waarnaar wordt verwezen een link is naar een specifieke pagina over het prijsmatchingbeleid en onze webcrawl alleen voor de enkele pagina was. Om betere antwoorden te krijgen, moeten deze links ook worden gecrawld. In het volgende gedeelte wordt uitgelegd hoe u antwoorden kunt krijgen op vragen waarvoor twee of meer niveaus van paginadiepte nodig zijn.
Crawlen op N-niveau
Wanneer we een webpagina crawlen voor kennis van veelgestelde vragen, kan de gewenste informatie op gelinkte pagina's staan. In ons Zappos-voorbeeld stellen we bijvoorbeeld de vraag โHeeft u een prijsmatchingbeleid?โ en het antwoord is: โJa, bezoek alstublieft meer leren." Als iemand vraagt: โWat is uw beleid voor prijsmatching?โ dan willen wij met het beleid een compleet antwoord geven. Om dit te bereiken, moeten we links doorlopen om de feitelijke informatie voor onze eindgebruiker te verkrijgen. Tijdens het opnameproces kunnen we onze weblader gebruiken om de ankerlinks naar andere HTML-pagina's te vinden en deze vervolgens te doorkruisen. Door de volgende codewijziging in onze webcrawler kunnen we links vinden op de pagina's die we crawlen. Het bevat ook wat extra logica om circulair crawlen te voorkomen en een filter op een voorvoegsel mogelijk te maken.
In de voorgaande code introduceren we de mogelijkheid om N niveaus diep te crawlen, en we geven een voorvoegsel waarmee we het crawlen kunnen beperken tot alleen dingen die beginnen met een bepaald URL-patroon. In ons Zappos-voorbeeld zijn de klantenservicepagina's allemaal afkomstig van zappos.com/c
, dus we nemen dat op als voorvoegsel om onze crawls te beperken tot een kleinere en relevantere subset. De code laat zien hoe we tot twee niveaus diep kunnen inslikken. De Lambda-logica van onze bot blijft hetzelfde omdat er niets is veranderd, behalve dat de crawler meer documenten opneemt.
We hebben nu alle documenten geรฏndexeerd en kunnen een meer gedetailleerde vraag stellen. In de volgende schermafbeelding geeft onze bot het juiste antwoord op de vraag โHeeft u een prijsmatchingbeleid?โ
We hebben nu een volledig antwoord op onze vraag over prijsmatching. In plaats van eenvoudigweg te zeggen: "Ja, zie ons beleid", geeft het ons de details van de crawl op het tweede niveau.
Opruimen
Om toekomstige uitgaven te voorkomen, gaat u verder met het verwijderen van alle resources die zijn ingezet als onderdeel van deze oefening. We hebben een script geleverd om het Sagemaker-eindpunt op een correcte manier af te sluiten. Gebruiksdetails staan โโin de README. Bovendien kunt u alle andere bronnen verwijderen die u kunt gebruiken cdk destroy
in dezelfde map als de andere cdk-opdrachten om alle bronnen in uw stapel ongedaan te maken.
Conclusie
De mogelijkheid om een โโreeks veelgestelde vragen in een chatbot op te nemen, stelt uw klanten in staat de antwoorden op hun vragen te vinden met eenvoudige, natuurlijke taalvragen. Door de ingebouwde ondersteuning in Amazon Lex voor fallback-afhandeling te combineren met een RAG-oplossing zoals een LlamaIndex, kunnen we onze klanten een snel pad bieden om bevredigende, samengestelde en goedgekeurde antwoorden op veelgestelde vragen te krijgen. Door N-level crawling in onze oplossing toe te passen, kunnen we antwoorden mogelijk maken die mogelijk meerdere FAQ-links omvatten en diepere antwoorden bieden op de vragen van onze klanten. Door deze stappen te volgen, kunt u naadloos krachtige op LLM gebaseerde vraag- en antwoordmogelijkheden en efficiรซnte URL-opname integreren in uw Amazon Lex-chatbot. Dit resulteert in nauwkeurigere, uitgebreidere en contextueel bewustere interacties met gebruikers.
Over de auteurs
Max Henkel Wallace is Software Development Engineer bij AWS Lex. Hij geniet van het gebruik van technologie om het succes van de klant te maximaliseren. Buiten zijn werk is hij gepassioneerd door koken, tijd doorbrengen met vrienden en backpacken.
Lied Feng is een Senior Applied Scientist bij AWS AI Labs, gespecialiseerd in natuurlijke taalverwerking en kunstmatige intelligentie. Haar onderzoek verkent verschillende aspecten van deze gebieden, waaronder modellering van op documenten gebaseerde dialogen, redenering voor taakgerichte dialogen en interactieve tekstgeneratie met behulp van multimodale gegevens.
John Baker is Principal SDE bij AWS, waar hij werkt aan Natural Language Processing, Large Language Models en andere ML/AI-gerelateerde projecten. Hij werkt al meer dan 9 jaar bij Amazon en heeft gewerkt bij AWS, Alexa en Amazon.com. In zijn vrije tijd houdt John van skiรซn en andere buitenactiviteiten in de Pacific Northwest.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/machine-learning/enhance-amazon-lex-with-llms-and-improve-the-faq-experience-using-url-ingestion/
- : heeft
- :is
- :niet
- :waar
- $UP
- 1
- 10
- 100
- 12
- 14
- 16
- 19
- 23
- 36
- 7
- 80
- a
- vermogen
- in staat
- Over
- bereiken
- accuraat
- Bereiken
- het bereiken van
- over
- activiteiten
- daadwerkelijk
- Extra
- Daarnaast
- AI
- AI-powered
- Alexa
- Alles
- toelaten
- Het toestaan
- toestaat
- al
- ook
- Amazone
- Amazon-Lex
- Amazon Web Services
- Amazon.com
- an
- Anker
- en
- beantwoorden
- antwoorden
- toegepast
- Het toepassen van
- nadering
- goedgekeurd
- ZIJN
- Komt aan
- kunstmatig
- kunstmatige intelligentie
- AS
- aspecten
- At
- Beschikbaar
- vermijd
- bewust
- AWS
- terug
- baseren
- gebaseerde
- BE
- omdat
- geweest
- beginnen
- wezen
- Betere
- Blog
- lichaam
- Bot
- bouw
- bebouwd
- ingebouwd
- ondernemingen
- by
- CAN
- mogelijkheden
- Kaarten
- geval
- zeker
- verandering
- veranderd
- Chatbot
- controleren
- klasse
- klant
- Sluiten
- code
- COM
- combinatie van
- combineren
- komst
- Gemeen
- compleet
- uitgebreid
- troosten
- Consumenten
- bevatte
- content
- inhoud
- verband
- spraakzaam
- converteren
- het omzetten van
- te corrigeren
- kon
- Counter
- crawler
- en je merk te creรซren
- aangemaakt
- curated
- klant
- Klantenservice
- Klanten succes
- Klanten
- cycli
- gegevens
- deep
- diepere
- Standaard
- gedemonstreerd
- ingezet
- diepte
- gedetailleerd
- gegevens
- Ontwikkeling
- Dialoog
- digitaal
- digitale wereld
- direct
- document
- documenten
- beneden
- Download
- duplicaten
- gedurende
- e
- elk
- gemakkelijk
- doeltreffend
- anders
- maakt
- einde
- Endpoint
- ingenieur
- verhogen
- bedrijven
- toegang
- Event
- voorbeeld
- Behalve
- uitzondering
- Oefening
- bestaand
- kosten
- ervaring
- verkent
- FAQ
- Voordelen
- Velden
- Bestanden
- filter
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Voornaam*
- volgend
- Voor
- gevonden
- vrienden
- oppompen van
- functie
- toekomst
- generatie
- krijgen
- gift
- cadeaubonnen
- Geven
- gegeven
- geeft
- Go
- HAD
- Behandeling
- Hebben
- he
- headers
- nuttig
- haar
- zijn
- Hoe
- How To
- Echter
- HTML
- http
- HTTPS
- if
- importeren
- verbeteren
- in
- omvatten
- omvat
- Inclusief
- Inkomend
- nemen
- onafhankelijk
- index
- geรฏndexeerd
- info
- informatie
- innovatieve
- invoer
- vragen
- instantie
- verkrijgen in plaats daarvan
- Intelligentie
- aandachtig
- wisselwerking
- interacties
- interactieve
- in
- voorstellen
- IT
- HAAR
- John
- jpg
- json
- sleutel
- kennis
- Labs
- taal
- Groot
- LEARN
- Niveau
- niveaus
- leveraging
- als
- LIMIT
- LINK
- gekoppeld
- links
- linux
- Lijst
- laden
- lader
- lokaal
- plaatselijk
- logging
- logica
- op elkaar afgestemd
- matching
- Maximaliseren
- gemiddelde
- middel
- Bericht
- berichten
- modellering
- modellen
- meer
- meest
- meervoudig
- naam
- Naturel
- Natural Language Processing
- Noodzaak
- volgende
- niets
- nu
- aantal
- objecten
- of
- bieden
- on
- EEN
- Slechts
- or
- OS
- Overige
- onze
- uit
- buiten
- het te bezitten.
- Pacific
- pagina
- paginas
- deel
- hartstochtelijk
- pad
- Patronen
- Plato
- Plato gegevensintelligentie
- PlatoData
- dan
- beleidsmaatregelen
- mogelijk
- Post
- aangedreven
- krachtige
- voorkomen
- prijs
- Principal
- problemen
- verwerking
- projecten
- zorgen voor
- mits
- providers
- biedt
- gepubliceerde
- queries
- vraag
- Contact
- Quick
- snel
- verhogen
- liever
- RE
- bereiken
- lezers
- echte wereld
- verwant
- relevante
- stoffelijk overschot
- verwijderen
- bewaarplaats
- te vragen
- verzoeken
- vereisen
- onderzoek
- Resources
- antwoord
- reacties
- beperken
- verkregen
- Resultaten
- terugkeer
- Retourneren
- wortel
- weg
- lopen
- s
- sagemaker
- dezelfde
- Wetenschapper
- naadloos
- Ontdek
- sectie
- zien
- ZELF
- senior
- service
- dienstverleners
- Diensten
- reeks
- Bermuda's
- getoond
- Shows
- stilgelegd
- Eenvoudig
- eenvoudigweg
- single
- website
- Locaties
- speelautomaten
- kleinere
- So
- Software
- software development
- oplossing
- OPLOSSEN
- sommige
- Iemand
- bronnen
- span
- gespecialiseerd
- specifiek
- Uitgaven
- stack
- begin
- Stap voor
- Stappen
- mediaopslag
- shop
- opgeslagen
- winkels
- eenvoudig
- succes
- dergelijk
- ondersteuning
- SYS
- Nemen
- het nemen
- Technologie
- proef
- neem contact
- dat
- De
- de informatie
- hun
- Ze
- harte
- Deze
- spullen
- dit
- die
- overal
- niet de tijd of
- getiteld
- naar
- vandaag
- samen
- tools
- behandelen
- waar
- proberen
- twee
- type dan:
- URL
- us
- Gebruik
- .
- gebruikt
- Gebruiker
- gebruikers
- toepassingen
- gebruik
- divers
- via
- Bezoek
- bezocht
- willen
- was
- we
- web
- webservices
- Website
- GOED
- waren
- wanneer
- telkens als
- welke
- wil
- Met
- Woord
- Mijn werk
- samenwerken
- werkte
- workflow
- werkzaam
- Bedrijven
- wereld
- zou
- geschreven
- X11
- jaar
- You
- Your
- zephyrnet