În lumea digitală de astăzi, majoritatea consumatorilor preferă să găsească singuri răspunsuri la întrebările lor legate de serviciile pentru clienți, decât să-și ia timp pentru a contacta companiile și/sau furnizorii de servicii. Această postare de blog explorează o soluție inovatoare pentru a crea un chatbot cu întrebări și răspunsuri Amazon Lex care utilizează întrebări frecvente existente de pe site-ul dvs. Acest instrument alimentat de inteligență artificială poate oferi răspunsuri rapide și precise la întrebările din lumea reală, permițând clientului să rezolve rapid și ușor problemele comune în mod independent.
Ingestie unică de adresă URL
Multe întreprinderi au un set publicat de răspunsuri pentru întrebări frecvente pentru clienții lor, disponibil pe site-ul lor web. În acest caz, dorim să oferim clienților un chatbot care să le poată răspunde întrebărilor din întrebările frecvente publicate. În postarea de blog intitulată Îmbunătățiți Amazon Lex cu funcții de întrebări frecvente conversaționale folosind LLM-uri, am demonstrat cum puteți utiliza o combinație de Amazon Lex și LlamaIndex pentru a construi un chatbot alimentat de sursele dvs. de cunoștințe existente, cum ar fi documentele PDF sau Word. Pentru a sprijini o simplă Întrebări frecvente, bazată pe un site web de Întrebări frecvente, trebuie să creăm un proces de asimilare care să poată accesa cu crawlere site-ul web și să creeze încorporari care să poată fi utilizate de LlamaIndex pentru a răspunde la întrebările clienților. În acest caz, ne vom baza pe botul creat în postare anterioară pe blog, care interogează acele înglobări cu enunțul unui utilizator și returnează răspunsul de la Întrebări frecvente ale site-ului.
Următoarea diagramă arată modul în care procesul de asimilare și botul Amazon Lex lucrează împreună pentru soluția noastră.
În fluxul de lucru al soluției, site-ul web cu întrebări frecvente este ingerat prin AWS Lambdas. Această funcție Lambda accesează cu crawlere site-ul web și stochează textul rezultat într-un Serviciul Amazon de stocare simplă (Amazon S3) găleată. Bucket-ul S3 declanșează apoi o funcție Lambda care utilizează LlamaIndex pentru a crea înglobări care sunt stocate în Amazon S3. Când apare o întrebare de la un utilizator final, cum ar fi „Care este politica dvs. de returnare?”, robotul Amazon Lex își folosește funcția Lambda pentru a interoga înglobările folosind o abordare bazată pe RAG cu LlamaIndex. Pentru mai multe informații despre această abordare și despre cerințele preliminare, consultați postarea de blog, Îmbunătățiți Amazon Lex cu funcții de întrebări frecvente conversaționale folosind LLM-uri.
După ce cerințele preliminare de pe blogul menționat mai sus sunt îndeplinite, primul pas este să ingerați întrebările frecvente într-un depozit de documente care poate fi vectorizat și indexat de LlamaIndex. Următorul cod arată cum să realizați acest lucru:
În exemplul precedent, luăm o adresă URL predefinită a site-ului cu întrebări frecvente de la Zappos și o ingerăm folosind EZWebLoader
clasă. Cu această clasă, am navigat la adresa URL și am încărcat toate întrebările care sunt în pagină într-un index. Acum putem pune o întrebare precum „Zappos are carduri cadou?” și obțineți răspunsurile direct din Întrebările noastre frecvente de pe site. Următoarea captură de ecran arată consola de testare a botului Amazon Lex care răspunde la această întrebare din întrebările frecvente.
Am reușit să reușim acest lucru deoarece am accesat cu crawlere adresa URL în primul pas și am creat încorporații pe care LlamaIndex le-ar putea folosi pentru a căuta răspunsul la întrebarea noastră. Funcția Lambda a botului nostru arată cum se execută această căutare ori de câte ori este returnată intenția de rezervă:
Această soluție funcționează bine atunci când o singură pagină web are toate răspunsurile. Cu toate acestea, majoritatea site-urilor cu întrebări frecvente nu sunt construite pe o singură pagină. De exemplu, în exemplul nostru Zappos, dacă punem întrebarea „Aveți o politică de potrivire a prețurilor?”, atunci obținem un răspuns mai puțin decât satisfăcător, așa cum se arată în următoarea captură de ecran.
În interacțiunea anterioară, răspunsul privind politica de potrivire a prețurilor nu este util pentru utilizatorul nostru. Acest răspuns este scurt, deoarece întrebările frecvente la care se face referire este un link către o anumită pagină despre politica de potrivire a prețurilor, iar accesarea cu crawlere web a fost doar pentru o singură pagină. Obținerea unor răspunsuri mai bune va însemna accesarea cu crawlere și a acestor link-uri. Următoarea secțiune arată cum să obțineți răspunsuri la întrebări care necesită două sau mai multe niveluri de adâncime a paginii.
Crawling la nivel N
Când accesăm cu crawlere o pagină web pentru cunoașterea întrebărilor frecvente, informațiile pe care le dorim pot fi conținute în paginile legate. De exemplu, în exemplul nostru Zappos, punem întrebarea „Aveți o politică de potrivire a prețurilor?” iar răspunsul este „Da, vă rugăm să vizitați pentru a afla mai multe.” Dacă cineva întreabă „Care este politica ta de potrivire a prețurilor?” atunci vrem să dăm un răspuns complet cu politica. Atingerea acestui lucru înseamnă că avem nevoie să traversăm link-uri pentru a obține informațiile reale pentru utilizatorul nostru final. În timpul procesului de asimilare, putem folosi încărcătorul nostru web pentru a găsi link-urile de ancorare către alte pagini HTML și apoi le traversăm. Următoarea modificare a codului la crawler-ul nostru web ne permite să găsim link-uri în paginile pe care le accesăm cu crawlere. Include, de asemenea, o logică suplimentară pentru a evita accesarea cu crawlere circulară și pentru a permite un filtru după un prefix.
În codul precedent, introducem posibilitatea de a accesa cu crawlere N niveluri profund și dăm un prefix care ne permite să restricționăm accesarea cu crawlere doar la lucrurile care încep cu un anumit model de adresă URL. În exemplul nostru Zappos, toate paginile de servicii pentru clienți sunt înrădăcinate zappos.com/c
, așa că îl includem ca prefix pentru a ne limita accesările cu crawlere la un subset mai mic și mai relevant. Codul arată cum putem ingera până la două niveluri adânci. Logica Lambda a botului nostru rămâne aceeași, deoarece nimic nu s-a schimbat, cu excepția că crawler-ul ingerează mai multe documente.
Avem acum toate documentele indexate și putem pune o întrebare mai detaliată. În următoarea captură de ecran, botul nostru oferă răspunsul corect la întrebarea „Aveți o politică de potrivire a prețurilor?”
Acum avem un răspuns complet la întrebarea noastră despre potrivirea prețurilor. În loc să ni se spună pur și simplu „Da, vezi politica noastră”, ne oferă detaliile din accesarea cu crawlere de nivel al doilea.
A curăța
Pentru a evita cheltuielile viitoare, continuați cu ștergerea tuturor resurselor care au fost implementate ca parte a acestui exercițiu. Am furnizat un script pentru a închide cu grație punctul final Sagemaker. Detaliile de utilizare sunt în README. În plus, pentru a elimina toate celelalte resurse pe care le puteți rula cdk destroy
în același director cu celelalte comenzi cdk pentru a deproviziona toate resursele din stiva dumneavoastră.
Concluzie
Capacitatea de a ingera un set de întrebări frecvente într-un chatbot permite clienților tăi să găsească răspunsurile la întrebările lor cu interogări simple, în limbaj natural. Combinând suportul încorporat în Amazon Lex pentru gestionarea alternativă cu o soluție RAG, cum ar fi LlamaIndex, putem oferi clienților noștri o cale rapidă pentru a obține răspunsuri satisfăcătoare, organizate și aprobate la întrebările frecvente. Aplicând accesarea cu crawlere la nivel N în soluția noastră, putem permite răspunsuri care ar putea cuprinde mai multe link-uri de întrebări frecvente și să ofere răspunsuri mai profunde la întrebările clienților noștri. Urmând acești pași, puteți încorpora fără probleme capabilități Q și A puternice bazate pe LLM și ingerare eficientă de adrese URL în chatbot-ul dvs. Amazon Lex. Acest lucru are ca rezultat interacțiuni mai precise, cuprinzătoare și conștiente de context cu utilizatorii.
Despre autori
Max Henkel-Wallace este inginer de dezvoltare software la AWS Lex. Îi place să lucreze folosind tehnologia pentru a maximiza succesul clienților. În afara serviciului, este pasionat de gătit, de petrecerea timpului cu prietenii și de drumeții în spate.
Song Feng este cercetător senior aplicat la AWS AI Labs, specializat în procesarea limbajului natural și inteligența artificială. Cercetarea ei explorează diverse aspecte ale acestor domenii, inclusiv modelarea dialogului bazat pe documente, raționamentul pentru dialoguri orientate spre sarcini și generarea de text interactiv folosind date multimodale.
John Baker este SDE principal la AWS, unde lucrează la procesarea limbajului natural, modelele de limbaj mari și alte proiecte legate de ML/AI. A fost cu Amazon de peste 9 ani și a lucrat pe AWS, Alexa și Amazon.com. În timpul liber, lui John îi place schiul și alte activități în aer liber în nord-vestul Pacificului.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. Automobile/VE-uri, carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- BlockOffsets. Modernizarea proprietății de compensare a mediului. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/enhance-amazon-lex-with-llms-and-improve-the-faq-experience-using-url-ingestion/
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 10
- 100
- 12
- 14
- 16
- 19
- 23
- 36
- 7
- 80
- a
- capacitate
- Capabil
- Despre Noi
- realiza
- precis
- Obține
- realizarea
- peste
- activităţi de
- curent
- Suplimentar
- În plus,
- AI
- AI-alimentat
- Alexa
- TOATE
- permite
- Permiterea
- permite
- deja
- de asemenea
- Amazon
- Amazon Lex
- Amazon Web Services
- Amazon.com
- an
- Ancoră
- și
- răspunde
- răspunsuri
- aplicat
- Aplicarea
- abordare
- aprobat
- SUNT
- soseşte
- artificial
- inteligență artificială
- AS
- aspecte
- At
- disponibil
- evita
- conştient
- AWS
- înapoi
- de bază
- bazat
- BE
- deoarece
- fost
- începe
- fiind
- Mai bine
- Blog
- corp
- Bot
- construi
- construit
- construit-in
- întreprinderi
- by
- CAN
- capacități
- Carduri
- caz
- sigur
- Schimbare
- si-a schimbat hainele;
- chatbot
- control
- clasă
- client
- Închide
- cod
- COM
- combinaţie
- combinând
- venire
- Comun
- Completă
- cuprinzător
- Consoleze
- Consumatorii
- conținute
- conţinut
- conținut
- context
- de conversaţie
- converti
- de conversie a
- corecta
- ar putea
- Contracara
- tractor pe şenile
- crea
- a creat
- curator
- client
- Serviciu clienți
- Succesul clienților
- clienţii care
- cicluri
- de date
- adânc
- Mai adânc
- Mod implicit
- demonstrat
- dislocate
- adâncime
- detaliat
- detalii
- Dezvoltare
- Dialog
- digital
- lume digitală
- direct
- document
- documente
- jos
- Descarca
- duplicate
- în timpul
- e
- fiecare
- cu ușurință
- eficient
- altfel
- permite
- capăt
- Punct final
- inginer
- spori
- Companii
- intrare
- eveniment
- exemplu
- Cu excepția
- excepție
- Exercita
- existent
- cheltuieli
- experienţă
- Explorează
- FAQ
- DESCRIERE
- Domenii
- Fişiere
- filtru
- Găsi
- First
- următor
- Pentru
- găsit
- Prietenii lui
- din
- funcţie
- viitor
- generaţie
- obține
- cadou
- carduri cadou
- Da
- dat
- oferă
- Go
- HAD
- Manipularea
- Avea
- he
- anteturile
- util
- ei
- lui
- Cum
- Cum Pentru a
- Totuși
- HTML
- http
- HTTPS
- if
- import
- îmbunătăţi
- in
- include
- include
- Inclusiv
- Intrare
- incorpora
- independent
- index
- indexate
- info
- informații
- inovatoare
- intrare
- Cereri
- instanță
- in schimb
- Inteligență
- scop
- interacţiune
- interacţiuni
- interactiv
- în
- introduce
- IT
- ESTE
- Ioan
- jpg
- JSON
- Cheie
- cunoştinţe
- Labs
- limbă
- mare
- AFLAȚI
- Nivel
- nivelurile de
- efectului de pârghie
- ca
- LIMITĂ
- LINK
- legate de
- Link-uri
- linux
- Listă
- încărca
- încărcător
- local
- la nivel local
- logare
- logică
- potrivire
- potrivire
- Maximaliza
- însemna
- mijloace
- mesaj
- mesaje
- modelare
- Modele
- mai mult
- cele mai multe
- multiplu
- nume
- Natural
- Procesarea limbajului natural
- Nevoie
- următor
- nimic
- acum
- număr
- obiecte
- of
- oferi
- on
- ONE
- afară
- or
- OS
- Altele
- al nostru
- afară
- exterior
- propriu
- Pacific
- pagină
- pagini
- parte
- pasionat
- cale
- Model
- Plato
- Informații despre date Platon
- PlatoData
- "vă rog"
- Politica
- eventual
- Post
- alimentat
- puternic
- împiedica
- preţ
- Principal
- probleme
- proces
- prelucrare
- Proiecte
- furniza
- prevăzut
- furnizori
- furnizează
- publicat
- interogări
- întrebare
- Întrebări
- Rapid
- repede
- ridica
- mai degraba
- RE
- ajunge
- cititori
- lumea reală
- legate de
- rămășițe
- scoate
- depozit
- solicita
- cereri de
- necesita
- cercetare
- Resurse
- răspuns
- răspunsuri
- restrânge
- rezultând
- REZULTATE
- reveni
- Returnează
- rădăcină
- Traseul
- Alerga
- s
- sagemaker
- acelaşi
- Om de stiinta
- perfect
- Caută
- Secțiune
- vedea
- SELF
- senior
- serviciu
- prestatori de servicii
- Servicii
- set
- Pantaloni scurți
- indicat
- Emisiuni
- Închide
- simplu
- pur şi simplu
- singur
- teren
- Centre de cercetare
- sloturi
- mai mici
- So
- Software
- de dezvoltare de software
- soluţie
- REZOLVAREA
- unele
- Cineva
- Surse
- deschidere
- specializata
- specific
- Cheltuire
- stivui
- Începe
- Pas
- paşi
- depozitare
- stoca
- stocate
- magazine
- simplu
- succes
- astfel de
- a sustine
- SYS
- Lua
- luare
- Tehnologia
- test
- decât
- acea
- informațiile
- lor
- Lor
- apoi
- Acestea
- lucruri
- acest
- aceste
- de-a lungul
- timp
- cu denumirea
- la
- azi
- împreună
- instrument
- trata
- adevărat
- încerca
- Două
- tip
- URL-ul
- us
- Folosire
- utilizare
- utilizat
- Utilizator
- utilizatorii
- utilizări
- folosind
- diverse
- de
- Vizita
- vizitat
- vrea
- a fost
- we
- web
- servicii web
- website
- BINE
- au fost
- cand
- oricând
- care
- voi
- cu
- Cuvânt
- Apartamente
- lucram impreuna
- a lucrat
- flux de lucru
- de lucru
- fabrică
- lume
- ar
- scris
- X11
- ani
- Tu
- Ta
- zephyrnet