Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Saluton, Habr! Hodiaŭ ni montros al vi kiel uzi Azure por solvi problemojn, kiuj kutime postulas homan intervenon. Agentoj pasigas multan tempon respondante la samajn demandojn, pritraktante telefonvokojn kaj tekstmesaĝojn. Chatbots aŭtomatigas komunikadon kaj rekonon kaj reduktas la ŝarĝon sur homoj. Botoj ankaŭ estas uzataj en Azure DevOps, kie ili permesas, ekzemple, aprobi eldonojn, administri konstruaĵojn - vidi, komenci kaj haltigi - rekte de Slack aŭ Microsoft Teams. Esence, babilroto iom rememorigas CLI, nur interaga, kaj permesas al la programisto resti en la kunteksto de la babildiskuto.

En ĉi tiu artikolo, ni parolos pri iloj por krei babilrotojn, montros kiel ili povas esti plibonigitaj per kognaj servoj, kaj priskribos kiel akceli disvolviĝon per pretaj servoj en Azure.

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Chatbots kaj kognaj servoj: kiaj estas la similecoj kaj kiuj estas la diferencoj?

Por krei robotojn en Microsoft Azure, vi uzas la Azure Bot-Servon kaj la Bot-Kadron. Kune ili reprezentas aron de programaro por konstrui, testi, disfaldi kaj administri robotojn, kiuj ebligas al vi krei el pretaj moduloj ambaŭ simplajn kaj altnivelajn komunikajn sistemojn kun parolsubteno, naturlingva rekono kaj aliaj kapabloj.

Ni supozu, ke vi devas efektivigi simplan roboton bazitan sur kompania Q&A-servo aŭ, male, krei funkcian roboton kun kompleksa, branĉa komuniksistemo. Por fari tion, vi povas uzi kelkajn ilojn, dividitajn en tri grupojn: 

  1. Servoj por rapida disvolviĝo de dialoginterfacoj (bots).
  2. Pretaj kognaj AI-servoj por malsamaj uzkazoj (ŝablono-rekono, parolrekono, sciobazo kaj serĉo).
  3. Servoj por krei kaj trejni AI-modelojn.

Tipe, homoj intuicie konfuzas "botojn" kaj "kognajn servojn" ĉar ambaŭ konceptoj baziĝas sur la principo de komunikado, kaj la uzkazo por robotoj kaj servoj implikas dialogojn. Sed babilrotoj funkcias per ŝlosilvortoj kaj ellasiloj, kaj kognaj servoj funkcias kun arbitraj petoj, kiuj estas kutime prilaboritaj de homoj: 

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Sciaj servoj estas alia maniero komuniki kun la uzanto, helpante konverti arbitran peton en klaran komandon kaj transdoni ĝin al la bot. 

Tiel, babilrotoj estas aplikoj por labori kun petoj, kaj kognaj servoj estas iloj por inteligenta analizo de petoj, kiuj estas lanĉitaj aparte, sed kiujn la babilejo povas aliri, iĝante "inteligentaj". 

Kreante babilrotojn

La rekomendita desegna diagramo por bot en Azure estas jena: 

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Por desegni kaj disvolvi robotojn en Azure, uzu Bot-Kadro. Havebla ĉe GitHub ekzemploj de robotoj, la kapabloj de la kadro ŝanĝiĝas, do necesas konsideri la version de la SDK, kiu estas uzata en la robotoj.

La kadro disponigas plurajn eblojn por krei robotojn: uzante klasikan kodon, komandliniajn ilojn aŭ fludiagramojn. La lasta opcio bildigas dialogojn; por tio vi povas uzi la administranton Bot Framework Composer. Ĝi estis konstruita sur la Bot Framework SDK kiel vida disvolva ilo, kiun transdisciplinaj teamoj povus uzi por krei robotojn.

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Bot Framework Composer permesas vin uzi blokojn por krei dialogstrukturon kun kiu la roboto funkcios. Aldone, vi povas krei ellasilon, tio estas, ŝlosilvortoj al kiuj la bot reagos dum la dialogo. Ekzemple, la vortoj "funkciigisto", "ŝtelo" aŭ "haltigi" kaj "sufiĉe".

En Bot Framework Composer, vi povas krei kompleksajn dialogsistemojn uzante Adaptaj Dialogoj. Dialogoj povas uzi kaj kognajn servojn kaj okazaĵkartojn (Adaptive Cards):

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Post kreado, vi povas disfaldi la babileton en abono, kaj aŭtomate preta skripto kreos ĉiujn necesajn rimedojn: kognajn servojn, Aplikplanon, Aplikajn Insights, datumbazon ktp.

QnA Maker

Por krei simplajn robotojn bazitajn sur kompaniaj Q&A-datumbazoj, vi povas uzi la kognan servon QnA Maker. Realigita kiel simpla TTT-sorĉisto, ĝi permesas vin enigi ligilon al kompania sciobazo (FAQ Urls) aŭ uzi dokumentan datumbazon en *.doc aŭ *.pdf-formato kiel bazo. Post kreado de la indekso, la bot aŭtomate elektos la plej taŭgajn respondojn al la demandoj de la uzanto.

Uzante QnAMaker, vi ankaŭ povas krei ĉenojn de klarigantaj demandoj kun aŭtomata kreado de butonoj, kompletigi la scibazon per metadatenoj kaj plue trejni la servon dum uzo.

La servo povas esti uzata kiel babilejo kiu efektivigas nur ĉi tiun funkcion, aŭ kiel parto de kompleksa babilejo kiu uzas, depende de la peto, aliajn AI-servojn aŭ elementojn de la Bot Framework.

Laborante kun aliaj kognaj servoj

Estas multaj malsamaj kognaj servoj sur la Azure-platformo. Teknike, ĉi tiuj estas sendependaj retservoj, kiuj povas esti nomitaj de kodo. En respondo, la servo sendas json de certa formato, kiu povas esti uzata en la babilejo.

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon
La plej oftaj uzoj de babilrotoj estas:

  1. Rekono de teksto.
  2. Rekono de bildkategorioj difinitaj de programisto Custom Vision Service (produktadkazo: rekono de ĉu dungito portas durĉapelon, okulvitrojn aŭ maskon).
  3. Vizaĝrekono (bonega uzokazo estas kontroli ĉu la enketita persono afiŝis sian propran vizaĝon, aŭ, ekzemple, foton de hundo aŭ foton de persono de malsama sekso).
  4. Parola rekono.
  5. Bilda analizo.
  6. Tradukado (ni ĉiuj memoras kiom da bruo kaŭzis samtempa traduko en Skajpo).
  7. Literuma kontrolo kaj sugestoj por korekti erarojn.

LEWIS

Ankaŭ por krei robotojn vi eble bezonos LEWIS (Inteligenta Servo pri Lingvo Komprenado). Servoceloj:

  • Determini ĉu la deklaro de la uzanto havas sencon kaj ĉu la respondo de la bot estas necesa.
  • Redukti klopodojn transskribi uzantan paroladon (tekston) en komandojn kompreneblajn por la bot.
  • Antaŭdiru verajn uzantcelojn/intencojn kaj ĉerpi ŝlosilajn komprenojn el frazoj en dialogo.
  • Permesu al la programisto lanĉi la roboton uzante nur kelkajn ekzemplojn de signifo-rekono kaj posta plia trejnado de la roboto dum operacio.
  • Ebligu al la programisto uzi bildigon por taksi la kvaliton de komanda transskribo.
  • Helpu en pliigaj plibonigoj en vera celrekono.

Fakte, la ĉefa celo de LUIS estas kompreni kun certa probableco kion la uzanto volis diri kaj konverti naturan peton en harmonian ordonon. Por rekoni demandvalorojn, LUIS uzas aron da intencoj (signifoj, intencoj) kaj estaĵoj (aŭ antaŭ-agordita de programistoj, aŭ prenitaj kaj antaŭformitaj "domajnoj" - kelkaj pretaj bibliotekoj de normaj frazoj preparitaj de Microsoft). 

Simpla ekzemplo: vi havas bot, kiu donas al vi veterprognozon. Por li, la intenco estos la traduko de natura peto en "ago" - peto por veterprognozo, kaj la estaĵoj estos tempo kaj loko. Jen diagramo pri kiel funkcias la intenco de CheckWeather por tia bot.

Intenco
Esenco
Ekzemplo de natura demando

Kontrolu Veteton
{"type": "loko", "entity": "moskvo"}
{"type": "builtin.datetimeV2.date", "entity": "estonta","rezolucio":"2020-05-30"}
Kia estos la vetero morgaŭ en Moskvo?

Kontrolu Veteton
{ "type": "date_range", "entity": "ĉi-semajnfino" }
Montru al mi la prognozon por ĉi tiu semajnfino

Por kombini QnA Maker kaj LUIS vi povas uzi Sendanto

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Kiam vi laboras kun QnA Maker kaj ricevas peton de uzanto, la sistemo determinas kian procenton de probablo la respondo de QnA kongruas kun la peto. Se la probableco estas alta, la uzanto simple ricevas respondon de la kompania sciobazo; se ĝi estas malalta, la peto povas esti sendita al LUIS por klarigo. Uzado de Dispatcher permesas vin ne programi ĉi tiun logikon, sed aŭtomate determini ĉi tiun randon de la disiĝo de petoj kaj rapide distribui ilin.

Testado kaj publikigado de la bot

Alia loka aplikaĵo estas uzata por testado, Bot-kadra emulilo. Uzante la emulilon, vi povas komuniki kun la bot kaj kontroli la mesaĝojn, kiujn ĝi sendas kaj ricevas. La emulilo montras mesaĝojn kiel ili aperus en interreta babileja interfaco kaj registras JSON-petojn kaj respondojn dum mesaĝado de la bot.

Ekzemplo de uzado de la emulilo estas prezentita en ĉi tiu demo, kiu montras la kreadon de virtuala asistanto por BMW. La video ankaŭ parolas pri novaj akceliloj por krei babilrotojn - ŝablonojn:

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon
https://youtu.be/u7Gql-ClcVA?t=564

Vi ankaŭ povas uzi ŝablonojn dum kreado de viaj babilrotoj. 
Ŝablonoj permesas al vi ne skribi normajn robotfunkciojn denove, sed aldoni pretan kodon kiel "kapablon". Ekzemplo povus esti labori kun kalendaro, fari rendevuojn, ktp. Kodo de pretaj kapabloj eldonita sur github.

La testado sukcesis, la bot estas preta, kaj nun ĝi devas esti publikigita kaj kanaloj konektitaj. Eldonado estas farita per Azure, kaj mesaĝistoj aŭ sociaj retoj povas esti uzataj kiel kanaloj. Se vi ne havas la postulatan kanalon por enigi datumojn, vi povas serĉi ĝin en la responda komunumo ĉe GitHab. 

Ankaŭ, por krei plentaŭgan babilejon kiel interfacon por komuniki kun la uzanto kaj kognaj servoj, vi kompreneble bezonos pliajn Azure-servojn, kiel datumbazojn, senservilajn (Azure Functions), same kiel LogicApp-servojn kaj, eble. , Eventa Krado.

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Taksado kaj Analizo

Por taksi uzantinteragon, vi povas uzi kaj la enkonstruitan analizon de la Azure Bot-Servo kaj la specialan Servon de Application Insights.

Kiel rezulto, vi povas kolekti informojn laŭ la jenaj kriterioj:

  • Kiom da uzantoj aliris la roboton de diversaj kanaloj dum la elektita tempodaŭro.
  • Kiom da uzantoj kiuj sendis unu mesaĝon revenis poste kaj sendis alian.
  • Kiom da agoj estis senditaj kaj ricevitaj uzante ĉiun kanalon dum la specifita tempointervalo.

Uzante Application Insights, vi povas monitori ajnan aplikaĵon en Azure kaj, precipe, babilbots, akirante pliajn datumojn pri uzantkonduto, ŝarĝoj kaj babilbotreagoj. Oni devas rimarki, ke la servo Application Insights havas sian propran interfacon en la portalo Azure.

Vi ankaŭ povas uzi la datumojn kolektitajn per ĉi tiu servo por krei pliajn bildigojn kaj analizajn raportojn en PowerBI. Ekzemplo de tia raporto kaj ŝablono por PowerBI povas esti prenita tie.

Ni akcelas disvolviĝon per Azure-servoj: ni kreas babilrotojn kaj kognajn servojn uzante la platformon

Dankon al ĉiuj pro via atento! En ĉi tiu artikolo ni uzis la materialo de la retseminario de Microsoft Azure-arkitekto Anna Fenyushina "Kiam homoj ne havas tempon. Kiel uzi 100% babilrotojn kaj kognajn servojn por aŭtomatigi rutinajn procezojn", kie ni klare montris, kiaj babilrotoj estas en Azure kaj kiaj estas la scenaroj por ilia uzo, kaj ankaŭ montris kiel krei roboton en QnA Maker en 15 minutoj kaj kiel la demanda strukturo estas deĉifrita en LUIS. 

Ni faris ĉi tiun retseminarion kiel parto de la interreta maratono por programistoj Dev Bootcamp. Temis pri produktoj, kiuj akcelas disvolviĝon kaj malpezigas iom da la rutina laborŝarĝo de firmaaj dungitoj uzante aŭtomatigajn ilojn kaj pretajn antaŭ-agorditajn Azure-modulojn. Registradoj de aliaj retseminarioj inkluzivitaj en la maratono estas haveblaj ĉe la sekvaj ligiloj:

fonto: www.habr.com

Aldoni komenton