Edellisessä 3 osassa loimme yksinkertaisen e-comm chatbotin, suoritimme tilauskeskusteluprosessin. Tilaustiedot on tallennettu csv-tiedostoon. Tässä osassa lisäämme älykkyyttä bottiin LUIS:n avulla.
Suoritamme seuraavat vaiheet tässä osassa:
- Luo LUIS-sovellus. Kouluta ja julkaise sovellus.
- Käytä sovellusta bot-palvelussamme.
- Päivitä tilauksen luontivalintaikkuna käsitelläksesi paikan täyttöä. joka havaitsee puuttuvat entiteetit tilaustiedoissa ja pyytää käyttäjää antamaan vaadittujen entiteettien arvot.
- Suorita tilausprosessi loppuun
Microsoft Azure LUIS:
Microsoftin Azure LUIS on NLU-palvelu, joka on saatavilla Azuressa. LUIS:n käyttöä varten luomme LUIS-sovelluksen. Lisää tavoitteita ja kokonaisuuksia sovellukseemme. Tarjoamme myös esimerkkikäyttäjien lausumia tarkoitukseen.
Tietylle tekstille LUIS-sovellus havaitsee ensin, mihin tarkoitukseen annettu teksti kuuluu. Yksinkertaisesti sanottuna se ottaa käyttäjien vaatimuksen käyttäjän omin sanoin ja sitten tulkitsee sen ymmärtääkseen, mitä käyttäjän tarve tarkalleen ottaen on. Sitten se poimii tärkeät sanat käyttäjän tekstistä, joita kutsumme entiteeteiksi. Esimerkiksi – käyttäjätapauksessamme käyttäjä antaa tilauksen kuvauksen omin sanoin. Tilauskuvauksesta meidän on löydettävä sana, joka kertoo tuotteen nimen, kuten kakku tai leivonnainen jne. samoin sana, joka kertoo tuotteen maun, kuten suklaa, juusto jne. Joten tässä esimerkissä tuotteen nimi ja maku ovat entiteettejä.
Katso tarkemmat tiedot alla olevista linkeistä:
Miksi tarvitsemme LUISia bottipalveluumme?
Pyydämme käyttäjää toimittamaan tilauksen kuvauksen omin sanoin. Botin on ymmärrettävä, koostuuko tilaus vain yhdestä tuotteesta vai useammasta kuin yhdestä tuotteesta. Jos tilauksessa on useampi kuin yksi nimike, meidän on viitattava jokaiseen tilausnimikkeen tietoon alitilauksena ja luotava useita rivikohtia, jotka ovat tilaus. Myös jokaisen tuotteen kohdalla botin on tarkistettava, onko tilaustieto täydellinen vai ei, esimerkiksi jos kakkua pyydetään, onko käyttäjä ilmoittanut kakun koon ja maun vai ei. Tilauskuvauksessa olevien alatilausten ja vaadittujen tietojen eli kokonaisuuksien tunnistamiseen tilauskuvauksessa tarvitsemme Natural Language -ymmärryspalvelun. LUIS on luonnollisen kielen palvelu, jota käytämme robotissamme.
1. Kuinka keskustelutekniikka voi automatisoida asiakaspalvelua
2. Automatisoidut vs live-chatit: miltä asiakaspalvelun tulevaisuus näyttää?
3. Chatbotit lääketieteellisenä avustajana COVID-19-pandemiassa
4. Chatbot vs. Älykäs virtuaaliassistentti - mikä ero ja miksi hoito?
Luo LUIS-sovellus käyttämällä toimitettua JSON:ia:
Sinun on luotava LUIS-sovellus, jota varten sinulla pitäisi olla Azure-tilin tilaus. Noudata mainittuja vaiheita tätä luodaksesi LUIS-sovelluksen.
Bottimme vaatimat tavoitteet ja entiteetit on määritelty jsonissa tätä.
Kopioi tämä orderApp.json koneellesi. tuomme tämän jsonin LUIS-sovellukseen, jotta voimme lisätä tarvittavat tavoitteet ja entiteetit luis-sovellukseen.
Json-tiedoston tuominen luis-sovellukseen. Siirry luis-sovellukseesi ja napsauta Uusi sovellus -painikkeen vieressä olevaa alanuolta.
Valitse nyt Tuo json-muodossa ja selaa ordersApp.json-tiedostoon. Tämä luo tavoitteet ja entiteetit sovellukseesi.
Tilauskokonaisuus on strukturoitu kokonaisuus. Päätilausentiteetissä on määritelty kolme alikokonaisuutta. Tutki jokaista kokonaisuutta ymmärtääksesi ne selkeästi. Tarkista luontitilaustavoitteelle määritetyt ilmaisut. Katso, kuinka järjestysentiteetti ja muut alioliot on merkitty lausumiin. Nämä ovat harjoitustiedot. Voit lisätä harjoitustietoja tarkkuuden parantamiseksi. Napsauta testinapauta testataksesi sovellusta.
Yllä oleva teksti palauttaa tuloksen alle, napsauta tarkastusta nähdäksesi yksityiskohtaisen tuloksen. LUIS-palvelu on havainnut, että annetussa tekstissä on 2 tilausta. Jokaiselle tilaukselle se on yksilöinyt entiteetit eli nimikkeen_nimi, nimikkeen_maku jne. oikein. Laajenna item_size-entiteetti tarkistaaksesi koko_yksikkö- ja kokoarvo-entiteeteille haetut arvot. LUIS-sovelluksemme toimii täydellisesti!
Nyt voimme julkaista sovelluksen. Napsauta Julkaise-painiketta julkaistaksesi sovelluksen. Saat 2 vaihtoehtoa Stage Slot ja Production Slot. Valitse tuotantopaikka. Sovelluksen julkaiseminen kestää muutaman minuutin.
Kun sovellus on julkaistu, siirry Hallinnoi-välilehteen. Hallinta-näytössä on "Azure Resources" -valintaruutu. Napsauta "Azure Resources" -vaihtoehtoa, jolloin olet "Ennusteresurssit" -välilehdessä. Kopioi esimerkkikyselyssä annettu URL-osoite. Lisää tämä URL-osoite asetustiedostoon tai projektiisi. Lisää uusi määrite tiedostoon config.py. Nimeä attribuutti "LUIS_APP_URL", aseta arvo Azure Resourcesista kopioituksi URL-osoitteeksi. Leikkaa teksti "YOUR_QUERY_HERE" URL-osoitteesta (tämä teksti löytyy URL-osoitteen lopusta).
Käytämme tätä URL-osoitetta lähettääksemme käyttäjän toimittaman tilauksen kuvaustekstin LUIS-sovellukseen.
Lisää LUIS-sovellusaputoiminto:
Lisää uusi komentosarjatiedosto luisApp.py ja lisää siihen alla oleva koodi. Alla koodi määrittelee funktion, joka ottaa tekstin syötteenä ja välittää sen LUIS:iin yhdistämällä LUIS_APP_URL ja syöttöteksti. Lopullinen URL-osoite kutsutaan sitten get-menetelmällä. Palautettu reslt on json, joka palautetaan sitten kutsuvaan funktioon.
Määritä luokka alatilauksen tiedoille:
Lisäämme projektiin uuden luokan order_details.py. Tämä sisältää kaikki tilaukseen liittyvät attribuutit. Lisää alla oleva koodi osoitteeseen order_details.py
Lisää uudet attribuutit tiedostoon user_details.py
User_details-kohtaan lisäämme 2 uutta attribuuttia orders_list ja current_order. Orders_list on luettelotyypin attribuutti, jota käytetään alitilausten luettelon ylläpitämiseen. current_order on int-tyyppinen attribuutti, jonka tarkoituksena on pitää kirjaa nykyisestä alitilauksesta, kun se iteroidaan alitilausten läpi alimääräysten täydellisyyden tarkistamiseksi.
Muokkaa Createorder_dialogia lisätäksesi uusia vaiheita LUIS-kutsuun:
Avaa createorder_dialog.py lisää 2 uutta vaihetta act_step ja completeorder_step order_step jälkeen. Ilmoita nämä uudet vaiheet vesiputous-valintaikkunassa init-funktiossa. Nyt meidän on määriteltävä nämä toiminnot.
Act_steps-kohdassa lisäämme koodin hyväksymään käyttäjän antaman tilauskuvauksen. Välitä tämä teksti LUIS:lle kutsumalla luisApp-moduulin getLuisResponse-funktio. Toista nyt luisin palauttamat "tilaus"-oliot. Luo jokaiselle alatilaukselle (tai tilauskokonaisuudelle) orderDetails-objekti. Tallenna Luisilta saadut attribuuttien/kokonaisuuksien tiedot orderDetails-objektiin. Liitä tämä objekti orders_list-luetteloon. Lisää tilausluettelo kontekstissa.
Aloita kohdassa completeorder_step uusi alivalintaikkuna completeorder_dialog tarkistaaksesi kunkin alitilauksen täydellisyys.
Luomme uuden alivalintaikkunan komentosarjan sen jälkeen, kun olet tehnyt kaikki Createorder_dailogissa vaaditut muutokset.
Meidän on myös päivitettävä summary_step. Yhteenvetovaiheessa lisäämme koodin noutamaan orders_list kontekstiobjektista. Selaa jokaisen rivin läpi ja muodosta tilauskuvaus kullekin riville ketjuttamalla nimikkeen nimi, määrä, maku ja kokoarvot.
Alla on päivitetty Createorder_dialog.py:
Lisää uusi alivalintaikkuna completeorder_dialog:
Luo uusi valintaikkuna toimintokansioon. Lisää 4 vesiputousvaihetta – maku_vaihe, määrä_vaihe, koko_vaihe ja summary_step.
Hae makuvaiheessa tilausluettelo kontekstista. tarkista, onko nykyinen_tilaus (tämä attribuutti on 0 luontitilausikkunassa) indeksille orders_list attribuutilla item_flavour arvoa vai ei. Jos ei, pyydä käyttäjää antamaan pyydetyn tuotteen makunimi. Muussa tapauksessa siirry seuraavaan vaiheeseen.
Hae tilaukset_luettelo kontekstista määrä_vaiheessa. Tarkista nyt, onko käyttäjä antanut arvoa. Jos kyllä, aseta arvo nykyisen tilauksen mausteeksi tilausluettelossa. Tarkista, onko määräarvo annettu vai ei. Jos sitä ei ole annettu, pyydä määrää muussa tapauksessa siirry seuraavaan vaiheeseen.
Tarkista koko_vaiheessa, onko käyttäjä antanut uusia arvoja. Jos kyllä, aseta se nykyisen_tilauksen määräksi tilausluettelossa. Koska koko-attribuutti koskee vain tuotekakkua, tämä arvo vaaditaan vain, jos item_name on kakku. Tarkista nyt, onko nykyisen_tilauksen kohteen_nimi Cake, ja tarkista sitten koon arvo. Jos se on annettu, siirry seuraavaan vaiheeseen. Pyydä käyttäjää antamaan koko.
Tarkista summary_step-vaiheessa, onko käyttäjä antanut uusia arvoja, ja aseta se nykyisen tilauksen kokoarvoksi tilausluettelossa. Suurenna nyt arvoa nykyinen_tilaus yhdellä. Jos nykyinen_järjestys on suurempi kuin tilausluettelon pituus, se tarkoittaa, että olemme saavuttaneet luettelon loppuun, joten lopeta valintaikkuna ja palaa luontitilauksen_valintaikkunaan. Muussa tapauksessa jatka completeorder_dialogia ensimmäisestä vaiheesta.
Alla on koodi completeorder_dialogille:
Päivitä App.py, kun olemme lisänneet uuden alivalintaikkunan:
Tällä olemme saaneet tämän osan koodauksen valmiiksi. Seuraavassa osassa viimeistelemme tilauksen katselun ja peruutamme tilausvirran. Testaamme nyt sovellusta Bot Framework -emulaattorilla. Viitata Osa 1 ohjeita emulaattorin suorittamiseen.
Tärkeät linkit:
Lähdekoodi - https://github.com/sushmita-mishra/e-comm-chatobot-luis
- &
- Tili
- AI
- Kaikki
- sovelluksen
- sovelletaan
- Avustaja
- Automatisoitu
- saatavissa
- Taivaansininen
- Bot
- soittaa
- joka
- chatbot
- chatbots
- koodi
- Koodaus
- jatkaa
- Keskustelu
- Covid-19
- Nykyinen
- Asiakaspalvelu
- DA
- tiedot
- yksityiskohta
- alas
- DX
- jne.
- EU
- EV
- esimerkki
- Laajentaa
- otteet
- EY
- Etunimi
- virtaus
- seurata
- muoto
- Puitteet
- toiminto
- tehtävät
- tulevaisuutta
- GV
- Miten
- HP
- hr
- HTTPS
- ia
- tärkeä
- tuovan
- Kasvaa
- indeksi
- Älykkyys
- Älykäs
- tahallisuus
- IT
- Kieli
- linja
- Lista
- LP
- lääketieteellinen
- keskikokoinen
- Microsoft
- lisää
- Luonnollinen kieli
- Luonnollisen kielen ymmärtäminen
- NLU
- Vaihtoehto
- Vaihtoehdot
- tilata
- määräys
- Muut
- muuten
- tuotanto
- projekti
- toimittaa
- tarjoaa
- julkaista
- pyysi
- Esittelymateriaalit
- Tuotto
- ajaa
- Näytön
- sdk
- setti
- Yksinkertainen
- Koko
- So
- Alkaa
- tilaus
- Napauttaa
- kertoo
- testi
- Tulevaisuus
- Kautta
- raita
- koulutus
- Päivitykset
- Käyttäjät
- arvo
- Näytä
- Virtual
- virtuaaliassistentti
- Mitä
- sanoja
- työskentely