Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Sveiki, Habr! Šiandien parodysime, kaip naudoti „Azure“ sprendžiant problemas, kurioms paprastai reikia žmogaus įsikišimo. Agentai daug laiko praleidžia atsakydami į tuos pačius klausimus, tvarkydami telefono skambučius ir tekstines žinutes. Pokalbių robotai automatizuoja bendravimą ir atpažinimą bei sumažina žmonių naštą. Botai taip pat naudojami „Azure DevOps“, kur jie leidžia, pavyzdžiui, patvirtinti leidimus, tvarkyti versijas – peržiūrėti, paleisti ir sustabdyti – tiesiai iš „Slack“ arba „Microsoft Teams“. Iš esmės pokalbių robotas šiek tiek primena CLI, tik interaktyvus ir leidžia kūrėjui likti pokalbio diskusijos kontekste.

Šiame straipsnyje kalbėsime apie pokalbių robotų kūrimo įrankius, parodysime, kaip juos galima patobulinti naudojant pažinimo paslaugas, ir apibūdinsime, kaip paspartinti kūrimą naudojant paruoštas Azure paslaugas.

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Pokalbių robotai ir pažintinės paslaugos: kokie yra panašumai ir kuo skiriasi?

Norėdami kurti robotus Microsoft Azure, naudokite Azure Bot Service ir Bot Framework. Kartu jie sudaro programinės įrangos rinkinį, skirtą robotams kurti, testuoti, diegti ir administruoti, leidžiančius iš paruoštų modulių kurti paprastas ir pažangias komunikacijos sistemas su kalbos palaikymu, natūralios kalbos atpažinimu ir kitomis galimybėmis.

Tarkime, kad jums reikia įdiegti paprastą robotą, pagrįstą įmonės klausimų ir atsakymų paslauga, arba, atvirkščiai, sukurti funkcionalų robotą su sudėtinga, šakota ryšio sistema. Norėdami tai padaryti, galite naudoti daugybę įrankių, suskirstytų į tris grupes: 

  1. Dialoginių sąsajų (botų) spartaus kūrimo paslaugos.
  2. Paruoštos pažintinės AI paslaugos įvairiems naudojimo atvejams (modelių atpažinimas, kalbos atpažinimas, žinių bazė ir paieška).
  3. AI modelių kūrimo ir mokymo paslaugos.

Paprastai žmonės intuityviai painioja „botus“ ir „pažinimo paslaugas“, nes abi sąvokos yra pagrįstos komunikacijos principu, o robotų ir paslaugų naudojimo atvejis apima dialogus. Tačiau pokalbių robotai veikia su raktiniais žodžiais ir aktyvikliais, o pažinimo paslaugos veikia su savavališkomis užklausomis, kurias paprastai apdoroja žmonės: 

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Kognityvinės paslaugos yra dar vienas būdas bendrauti su vartotoju, padedantis savavališką užklausą paversti aiškia komanda ir perduoti ją robotui. 

Taigi, pokalbių robotai yra programos, skirtos darbui su užklausomis, o kognityvinės paslaugos yra intelektualios užklausų analizės įrankiai, kurie paleidžiami atskirai, bet kuriuos pokalbių robotas gali pasiekti, tapdamas „protingu“. 

Pokalbių robotų kūrimas

Rekomenduojama „Azure“ roboto dizaino schema yra tokia: 

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Norėdami kurti ir kurti robotus „Azure“, naudokite Bot Framework. Pasiekiama GitHub botų pavyzdžiai, keičiasi karkaso galimybės, todėl būtina atsižvelgti į robotuose naudojamą SDK versiją.

Sistema suteikia keletą robotų kūrimo parinkčių: naudojant klasikinį kodą, komandinės eilutės įrankius arba struktūrines schemas. Paskutinė parinktis vizualizuoja dialogus; tam galite naudoti tvarkyklę „Bot Framework“ kompozitorius. Jis buvo sukurtas naudojant Bot Framework SDK kaip vizualinio kūrimo įrankį, kurį tarpdisciplininės komandos galėjo naudoti kurdamos robotus.

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

„Bot Framework Composer“ leidžia naudoti blokus, kad sukurtumėte dialogo struktūrą, su kuria robotas veiks. Be to, galite sukurti aktyviklius, ty raktinius žodžius, į kuriuos robotas reaguos dialogo metu. Pavyzdžiui, žodžiai „operatorius“, „vagystė“ arba „stop“ ir „pakankamai“.

„Bot Framework Composer“ galite kurti sudėtingas dialogo sistemas naudodami Prisitaikantys dialogai. Dialoguose galima naudoti tiek pažinimo paslaugas, tiek įvykių korteles (adaptyviąsias korteles):

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Sukūrę pokalbių robotą galėsite dislokuoti prenumeratoje, o automatiškai paruoštas scenarijus sukurs visus reikiamus išteklius: pažinimo paslaugas, Application planą, Application Insights, duomenų bazę ir pan.

QnA kūrėjas

Norėdami sukurti paprastus robotus, pagrįstus įmonių klausimų ir atsakymų duomenų bazėmis, galite naudoti pažinimo paslaugą QnA Maker. Įdiegtas kaip paprastas žiniatinklio vedlys, leidžia įvesti nuorodą į įmonės žinių bazę (DUK URL) arba naudoti dokumentų duomenų bazę *.doc arba *.pdf formatu. Sukūręs indeksą, robotas automatiškai parinks tinkamiausius atsakymus į vartotojo klausimus.

Naudodami QnAMaker taip pat galite sukurti aiškinamųjų klausimų grandines su automatiniu mygtukų kūrimu, papildyti žinių bazę metaduomenimis ir toliau mokyti paslaugą naudojimo metu.

Paslauga gali būti naudojama kaip pokalbių robotas, įgyvendinantis tik šią vieną funkciją, arba kaip sudėtingo pokalbių roboto, kuris, atsižvelgiant į užklausą, naudoja kitas AI paslaugas arba Bot Framework elementus, dalis.

Darbas su kitomis pažinimo tarnybomis

„Azure“ platformoje yra daug skirtingų pažinimo paslaugų. Techniškai tai yra nepriklausomos žiniatinklio paslaugos, kurias galima iškviesti iš kodo. Reaguodama į tai, paslauga siunčia tam tikro formato json, kurį galima naudoti pokalbių robote.

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas
Dažniausiai naudojami pokalbių robotai:

  1. Teksto atpažinimas.
  2. Kūrėjo apibrėžtų „Custom Vision Service“ vaizdo kategorijų atpažinimas (gamybos atvejis: atpažinimas, ar darbuotojas dėvi apsauginę skrybėlę, akinius ar kaukę).
  3. Veido atpažinimas (puikus naudojimo atvejis yra patikrinti, ar apklausiamas asmuo paskelbė savo veidą, ar, tarkime, šuns ar kitos lyties asmens nuotrauką).
  4. Kalbos atpažinimas.
  5. Vaizdo analizė.
  6. Vertimas (visi prisimename, kiek triukšmo sukėlė sinchroninis vertimas „Skype“).
  7. Rašybos tikrinimas ir klaidų taisymo pasiūlymai.

LUIS

Be to, norint sukurti robotus, kurių jums gali prireikti LUIS (Language Understanding Intelligent Service). Paslaugos tikslai:

  • Nustatykite, ar vartotojo pareiškimas yra prasmingas ir ar reikalingas roboto atsakymas.
  • Sumažinkite pastangas perrašyti vartotojo kalbą (tekstą) į komandas, kurias supranta robotas.
  • Numatykite tikrus naudotojo tikslus / ketinimus ir iš dialogo frazių gaukite pagrindines įžvalgas.
  • Leiskite kūrėjui paleisti robotą naudojant tik kelis prasmės atpažinimo pavyzdžius ir tolesnius papildomus roboto mokymus veikimo metu.
  • Įgalinkite kūrėją naudoti vizualizaciją komandų transkripcijos kokybei įvertinti.
  • Padėkite laipsniškai tobulinti tikrojo tikslo atpažinimą.

Tiesą sakant, pagrindinis LUIS tikslas yra su tam tikra tikimybe suprasti, ką vartotojas turėjo omenyje, ir paversti natūralų prašymą harmoninga komanda. Norėdami atpažinti užklausos reikšmes, LUIS naudoja ketinimų (reikšmių, ketinimų) ir objektų rinkinį (arba iš anksto sukonfigūruotus kūrėjų, arba paimtus ir iš anksto suformuotus „domenus“ - kai kurias paruoštas standartinių frazių bibliotekas, paruoštas Microsoft). 

Paprastas pavyzdys: turite robotą, kuris pateikia orų prognozę. Jam tikslas bus natūralaus prašymo pavertimas „veiksmu“ - orų prognozės prašymu, o esybės bus laikas ir vieta. Čia yra schema, kaip tokiam robotui veikia „CheckWeather“ tikslas.

Tikslas
Esmė
Natūralios užklausos pavyzdys

Patikrinkite orą
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Koks oras bus rytoj Maskvoje?

Patikrinkite orą
{ "type": "date_range", "entity": "šį savaitgalį" }
Parodykite šio savaitgalio prognozes

Norėdami sujungti QnA Maker ir LUIS, galite naudoti Dispečeris

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Kai dirbate su QnA Maker ir gaunate užklausą iš vartotojo, sistema nustato, kiek procentų tikimybės QnA atsakymas atitinka užklausą. Jei tikimybė yra didelė, vartotojui tiesiog pateikiamas atsakymas iš įmonės žinių bazės, o jei ji maža, užklausa gali būti siunčiama į LUIS paaiškinti. Dispečerio naudojimas leidžia neprogramuoti šios logikos, o automatiškai nustatyti šį užklausų atskyrimo kraštą ir greitai jas paskirstyti.

Boto testavimas ir publikavimas

Bandymui naudojama kita vietinė programa, Botų sistemos emuliatorius. Naudodami emuliatorių galite susisiekti su robotu ir patikrinti jo siunčiamus bei gaunamus pranešimus. Emuliatorius rodo pranešimus taip, kaip jie būtų rodomi žiniatinklio pokalbių sąsajoje, ir registruoja JSON užklausas bei atsakymus, kai siunčiami pranešimai robotui.

Šioje demonstracijoje pateikiamas emuliatoriaus naudojimo pavyzdys, kuriame parodytas virtualaus BMW asistento sukūrimas. Vaizdo įraše taip pat kalbama apie naujus pokalbių robotų kūrimo greitintuvus - šablonus:

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas
https://youtu.be/u7Gql-ClcVA?t=564

Taip pat galite naudoti šablonus kurdami pokalbių robotus. 
Šablonai leidžia iš naujo nerašyti standartinių robotų funkcijų, o pridėti paruoštą kodą kaip „įgūdį“. Pavyzdys galėtų būti darbas su kalendoriumi, susitikimų planavimas ir pan. Paruoštų įgūdžių kodas paskelbti github'e.

Testavimas buvo sėkmingas, robotas paruoštas, o dabar jį reikia paskelbti ir prijungti kanalus. Publikavimas vykdomas naudojant Azure, o pasiuntiniai arba socialiniai tinklai gali būti naudojami kaip kanalai. Jei neturite reikiamo kanalo duomenims įvesti, galite jo ieškoti atitinkamoje GitHab bendruomenėje. 

Be to, norint sukurti visavertį pokalbių robotą kaip sąsają bendrauti su vartotoju ir pažinimo paslaugas, jums, žinoma, reikės papildomų Azure paslaugų, tokių kaip duomenų bazės, be serverio (Azure Functions), taip pat LogicApp paslaugų ir galbūt , įvykių tinklelis.

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Įvertinimas ir analizė

Norėdami įvertinti vartotojo sąveiką, galite naudoti integruotą „Azure Bot Service“ analizę ir specialią „Application Insights“ paslaugą.

Dėl to galite rinkti informaciją pagal šiuos kriterijus:

  • Kiek vartotojų per pasirinktą laikotarpį prisijungė prie roboto iš įvairių kanalų.
  • Kiek vartotojų, išsiuntusių vieną žinutę, vėliau grįžo ir išsiuntė kitą.
  • Kiek veiksmų buvo išsiųsta ir gauta naudojant kiekvieną kanalą per nurodytą laiko intervalą.

Naudodami „Application Insights“ galite stebėti bet kurią „Azure“ programą ir ypač pokalbių robotus, gaudami papildomų duomenų apie vartotojo elgesį, įkėlimus ir pokalbių robotų reakcijas. Reikėtų pažymėti, kad „Application Insights“ paslauga „Azure“ portale turi savo sąsają.

Taip pat galite naudoti per šią paslaugą surinktus duomenis kurdami papildomas vizualizacijas ir analitines ataskaitas PowerBI. Galima paimti tokios PowerBI ataskaitos ir šablono pavyzdį čia.

Spartiname plėtrą naudodami Azure paslaugas: naudodamiesi platforma kuriame pokalbių robotus ir pažinimo paslaugas

Ačiū visiems už dėmesį! Šiame straipsnyje mes naudojome medžiaga iš Microsoft Azure architektės Annos Fenyushinos internetinio seminaro „Kai žmonės neturi laiko. Kaip 100 % naudoti pokalbių robotus ir pažinimo paslaugas automatizuoti įprastus procesus“, kuriame aiškiai parodėme, kas yra „Azure“ pokalbių robotai ir kokie yra jų naudojimo scenarijai, taip pat parodėme, kaip per 15 minučių sukurti robotą QnA Maker ir kaip užklausos struktūra iššifruojama LUIS. 

Šį internetinį seminarą sukūrėme kaip kūrėjų Dev Bootcamp internetinio maratono dalį. Kalbama apie produktus, kurie pagreitina kūrimą ir palengvina tam tikrą įprastą įmonės darbuotojų darbo krūvį naudojant automatizavimo įrankius ir paruoštus iš anksto sukonfigūruotus Azure modulius. Kitų į maratoną įtrauktų webinarų įrašus rasite šiose nuorodose:

Šaltinis: www.habr.com

Добавить комментарий