Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Hello, Habr! Ngayon ay ipapakita namin sa iyo kung paano gamitin ang Azure upang malutas ang mga problema na karaniwang nangangailangan ng interbensyon ng tao. Ang mga ahente ay gumugugol ng maraming oras sa pagsagot sa parehong mga tanong, paghawak ng mga tawag sa telepono at mga text message. Ang mga chatbot ay nag-automate ng komunikasyon at pagkilala at binabawasan ang pasanin sa mga tao. Ginagamit din ang mga bot sa Azure DevOps, kung saan pinapayagan nila, halimbawa, na aprubahan ang mga release, pamahalaan ang mga build - tingnan, simulan at ihinto - direkta mula sa Slack o Microsoft Teams. Sa esensya, ang isang chatbot ay medyo nakapagpapaalaala sa isang CLI, interactive lamang, at pinapayagan ang developer na manatili sa konteksto ng talakayan sa chat.

Sa artikulong ito, pag-uusapan natin ang tungkol sa mga tool para sa paglikha ng mga chatbot, ipakita kung paano sila mapapahusay sa mga serbisyong nagbibigay-malay, at ilalarawan kung paano pabilisin ang pag-unlad gamit ang mga handa na serbisyo sa Azure.

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Mga chatbot at nagbibigay-malay na serbisyo: ano ang mga pagkakatulad at ano ang mga pagkakaiba?

Para gumawa ng mga bot sa Microsoft Azure, ginagamit mo ang Azure Bot Service at ang Bot Framework. Magkasama silang kumakatawan sa isang set ng software para sa pagbuo, pagsubok, pag-deploy at pangangasiwa ng mga bot, na nagbibigay-daan sa iyong lumikha mula sa mga handa na module na parehong simple at advanced na mga sistema ng komunikasyon na may suporta sa pagsasalita, natural na pagkilala sa wika at iba pang mga kakayahan.

Ipagpalagay natin na kailangan mong magpatupad ng isang simpleng bot batay sa isang corporate Q&A na serbisyo o, sa kabaligtaran, lumikha ng isang functional na bot na may isang kumplikado, branched na sistema ng komunikasyon. Upang gawin ito, maaari kang gumamit ng ilang mga tool, na nahahati sa tatlong grupo: 

  1. Mga serbisyo para sa mabilis na pagbuo ng mga dialog interface (bots).
  2. Handa nang mga serbisyo ng cognitive AI para sa iba't ibang kaso ng paggamit (pagkilala ng pattern, pagkilala sa pagsasalita, base ng kaalaman at paghahanap).
  3. Mga serbisyo para sa paglikha at pagsasanay ng mga modelo ng AI.

Karaniwan, intuitive na nililito ng mga tao ang "mga bot" at "mga serbisyong nagbibigay-malay" dahil ang parehong mga konsepto ay nakabatay sa prinsipyo ng komunikasyon, at ang kaso ng paggamit para sa mga bot at serbisyo ay nagsasangkot ng mga diyalogo. Ngunit gumagana ang mga chatbot sa mga keyword at trigger, at gumagana ang mga serbisyong nagbibigay-malay sa mga arbitrary na kahilingan na karaniwang pinoproseso ng mga tao: 

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Ang mga serbisyong nagbibigay-malay ay isa pang paraan upang makipag-ugnayan sa user, na tumutulong na i-convert ang isang arbitrary na kahilingan sa isang malinaw na utos at ipasa ito sa bot. 

Kaya, ang mga chatbot ay mga application para sa pagtatrabaho sa mga kahilingan, at ang mga serbisyong nagbibigay-malay ay mga tool para sa matalinong pagsusuri ng mga kahilingan na hiwalay na inilunsad, ngunit maaaring ma-access ng chatbot, na nagiging "matalino." 

Paglikha ng mga chatbot

Ang inirerekomendang diagram ng disenyo para sa isang bot sa Azure ay ang mga sumusunod: 

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Upang magdisenyo at bumuo ng mga bot sa Azure, gamitin Bot Framework. Available sa GitHub mga halimbawa ng mga bot, nagbabago ang mga kakayahan ng balangkas, kaya kinakailangang isaalang-alang ang bersyon ng SDK na ginagamit sa mga bot.

Nagbibigay ang framework ng ilang opsyon para sa paggawa ng mga bot: gamit ang classic na code, command line tool o flowchart. Ang huling opsyon ay nagpapakita ng mga dialog; para dito maaari mong gamitin ang manager Bot Framework Composer. Ito ay binuo sa Bot Framework SDK bilang isang visual development tool na maaaring gamitin ng mga cross-disciplinary team para gumawa ng mga bot.

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Binibigyang-daan ka ng Bot Framework Composer na gumamit ng mga bloke upang lumikha ng istraktura ng diyalogo kung saan gagana ang bot. Bukod pa rito, maaari kang lumikha ng mga trigger, iyon ay, mga keyword kung saan magre-react ang bot sa panahon ng dialogue. Halimbawa, ang mga salitang "operator", "pagnanakaw" o "stop" at "sapat".

Sa Bot Framework Composer, maaari kang lumikha ng mga kumplikadong sistema ng dialogo gamit ang Mga Adaptive Dialog. Maaaring gamitin ng mga dialogue ang parehong mga serbisyong nagbibigay-malay at mga card ng kaganapan (Mga Adaptive Card):

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Pagkatapos ng paggawa, maaari mong i-deploy ang chatbot sa isang subscription, at ang isang awtomatikong inihanda na script ay lilikha ng lahat ng kinakailangang mapagkukunan: mga serbisyong nagbibigay-malay, Plano ng Application, Mga Insight sa Application, database, at iba pa.

Tagagawa ng QnA

Upang lumikha ng mga simpleng bot batay sa mga database ng Q&A ng kumpanya, maaari mong gamitin ang serbisyong nagbibigay-malay sa QnA Maker. Ipinatupad bilang isang simpleng web wizard, pinapayagan ka nitong mag-input ng link sa isang corporate knowledge base (FAQ Urls) o gumamit ng database ng dokumento sa *.doc o *.pdf na format bilang batayan. Pagkatapos gawin ang index, awtomatikong pipiliin ng bot ang pinakaangkop na mga sagot sa mga tanong ng user.

Gamit ang QnAMaker, maaari ka ring gumawa ng mga chain ng paglilinaw ng mga tanong gamit ang awtomatikong paggawa ng mga button, dagdagan ang knowledge base ng metadata, at higit pang sanayin ang serbisyo habang ginagamit.

Ang serbisyo ay maaaring gamitin bilang isang chatbot na nagpapatupad lamang ng isang function na ito, o bilang bahagi ng isang kumplikadong chatbot na gumagamit, depende sa kahilingan, iba pang mga serbisyo ng AI o elemento ng Bot Framework.

Paggawa sa iba pang mga serbisyong nagbibigay-malay

Mayroong maraming iba't ibang mga serbisyong nagbibigay-malay sa platform ng Azure. Sa teknikal, ito ay mga independiyenteng serbisyo sa web na maaaring tawagan mula sa code. Bilang tugon, ang serbisyo ay nagpapadala ng json ng isang tiyak na format, na maaaring magamit sa chatbot.

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform
Ang pinakakaraniwang paggamit ng chatbots ay:

  1. Pagkilala sa teksto.
  2. Pagkilala sa mga kategorya ng imahe ng Custom Vision Service na tinukoy ng developer (case ng produksyon: pagkilala kung ang isang empleyado ay nakasuot ng hard hat, goggles o mask).
  3. Pagkilala sa mukha (isang mahusay na kaso ng paggamit ay ang pagsuri kung ang taong sinu-survey ay nag-post ng kanyang sariling mukha, o, halimbawa, isang larawan ng isang aso o isang larawan ng isang tao na may ibang kasarian).
  4. Pagkilala sa pagsasalita.
  5. Pagsusuri ng imahe.
  6. Pagsasalin (natatandaan nating lahat kung gaano karaming ingay ang naidulot ng sabay-sabay na pagsasalin sa Skype).
  7. Spell check at mga mungkahi para sa pagwawasto ng mga error.

Luis

Gayundin, upang lumikha ng mga bot na maaaring kailanganin mo Luis (Language Understanding Intelligent Service). Mga layunin ng serbisyo:

  • Tukuyin kung may katuturan ang pahayag ng user at kung kinakailangan ang tugon ng bot.
  • Bawasan ang mga pagsisikap na i-transcribe ang pananalita ng user (teksto) sa mga utos na naiintindihan ng bot.
  • Hulaan ang mga tunay na layunin/layunin ng user at kunin ang mga pangunahing insight mula sa mga parirala sa diyalogo.
  • Pahintulutan ang developer na ilunsad ang bot gamit lamang ang ilang halimbawa ng pagkilala sa kahulugan at kasunod na karagdagang pagsasanay ng bot sa panahon ng operasyon.
  • I-enable ang developer na gumamit ng visualization para masuri ang kalidad ng command transcription.
  • Tumulong sa mga incremental na pagpapabuti sa totoong target na pagkilala.

Sa katunayan, ang pangunahing layunin ng LUIS ay maunawaan nang may tiyak na posibilidad kung ano ang ibig sabihin ng gumagamit at i-convert ang isang natural na kahilingan sa isang maayos na utos. Upang makilala ang mga halaga ng query, gumagamit ang LUIS ng isang hanay ng mga intent (kahulugan, intensyon) at mga entity (alinman sa paunang na-configure ng mga developer, o kinuha at paunang nabuo na "mga domain" - ilang handa na mga library ng mga karaniwang parirala na inihanda ng Microsoft). 

Isang simpleng halimbawa: mayroon kang bot na nagbibigay sa iyo ng taya ng panahon. Para sa kanya, ang layunin ay ang pagsasalin ng isang natural na kahilingan sa isang "aksyon" - isang kahilingan para sa isang taya ng panahon, at ang mga entidad ay magiging oras at lugar. Narito ang isang diagram kung paano gumagana ang layunin ng CheckWeather para sa naturang bot.

Layunin
Kakanyahan
Halimbawa ng natural na query

CheckWeather
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "future","resolution":"2020-05-30"}
Ano ang magiging lagay ng panahon bukas sa Moscow?

CheckWeather
{ "type": "date_range", "entity": "this weekend" }
Ipakita sa akin ang hula para sa katapusan ng linggo

Upang pagsamahin ang QnA Maker at LUIS maaari mong gamitin despatsador

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Kapag nagtatrabaho ka sa QnA Maker at nakatanggap ng kahilingan mula sa isang user, tinutukoy ng system kung anong porsyento ng posibilidad na tumutugma ang sagot mula sa QnA sa kahilingan. Kung mataas ang posibilidad, bibigyan lang ang user ng sagot mula sa corporate knowledge base; kung mababa ito, maaaring ipadala ang kahilingan sa LUIS para sa paglilinaw. Ang paggamit ng Dispatcher ay nagbibigay-daan sa iyo na huwag i-program ang logic na ito, ngunit upang awtomatikong matukoy ang gilid ng paghihiwalay ng mga kahilingan at mabilis na ipamahagi ang mga ito.

Pagsubok at pag-publish ng bot

Ang isa pang lokal na application ay ginagamit para sa pagsubok, Bot framework emulator. Gamit ang emulator, maaari kang makipag-ugnayan sa bot at suriin ang mga mensaheng ipinapadala at natatanggap nito. Ang emulator ay nagpapakita ng mga mensahe tulad ng pagpapakita ng mga ito sa isang web chat interface at nag-log ng mga kahilingan at tugon ng JSON kapag nagmemensahe sa bot.

Ang isang halimbawa ng paggamit ng emulator ay ipinakita sa demo na ito, na nagpapakita ng paglikha ng isang virtual na katulong para sa BMW. Pinag-uusapan din ng video ang tungkol sa mga bagong accelerator para sa paglikha ng mga chatbot - mga template:

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform
https://youtu.be/u7Gql-ClcVA?t=564

Maaari ka ring gumamit ng mga template kapag gumagawa ng iyong mga chatbot. 
Binibigyang-daan ka ng mga template na huwag magsulat muli ng mga karaniwang pag-andar ng bot, ngunit magdagdag ng handa na code bilang isang "kasanayan". Ang isang halimbawa ay maaaring ang pagtatrabaho sa isang kalendaryo, paggawa ng mga appointment, atbp. Kodigo ng mga kasanayang handa na nalathala sa github.

Naging matagumpay ang pagsubok, handa na ang bot, at ngayon ay kailangan itong i-publish at konektado ang mga channel. Isinasagawa ang pag-publish gamit ang Azure, at maaaring gamitin ang mga messenger o social network bilang mga channel. Kung wala kang kinakailangang channel para sa pagpasok ng data, maaari mong hanapin ito sa kaukulang komunidad sa GitHab. 

Gayundin, upang lumikha ng isang ganap na chatbot bilang isang interface para sa pakikipag-usap sa gumagamit at mga serbisyong nagbibigay-malay, siyempre, kakailanganin mo ng karagdagang mga serbisyo ng Azure, tulad ng mga database, walang server (Azure Functions), pati na rin ang mga serbisyo ng LogicApp at, posibleng , Grid ng Kaganapan.

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Pagsusuri at Analytics

Upang suriin ang pakikipag-ugnayan ng user, maaari mong gamitin ang parehong built-in na analytics ng Azure Bot Service at ang espesyal na serbisyo ng Application Insights.

Bilang resulta, maaari kang mangolekta ng impormasyon batay sa sumusunod na pamantayan:

  • Ilang user ang nag-access sa bot mula sa iba't ibang channel sa napiling yugto ng panahon.
  • Ilang user na nagpadala ng isang mensahe ang bumalik sa ibang pagkakataon at nagpadala ng isa pa.
  • Gaano karaming mga aksyon ang ipinadala at natanggap gamit ang bawat channel sa loob ng tinukoy na agwat ng oras.

Gamit ang Application Insights, maaari mong subaybayan ang anumang application sa Azure at, sa partikular, mga chatbot, pagkuha ng karagdagang data tungkol sa gawi ng user, pag-load at mga reaksyon sa chatbot. Dapat tandaan na ang serbisyo ng Application Insights ay may sariling interface sa Azure portal.

Magagamit mo rin ang data na nakolekta sa pamamagitan ng serbisyong ito para gumawa ng mga karagdagang visualization at analytical na ulat sa PowerBI. Maaaring kunin ang isang halimbawa ng naturang ulat at template para sa PowerBI dito.

Pinapabilis namin ang pag-unlad gamit ang mga serbisyo ng Azure: gumagawa kami ng mga chatbot at mga serbisyong nagbibigay-malay gamit ang platform

Salamat sa lahat para sa iyong pansin! Sa artikulong ito ginamit namin materyal mula sa webinar ng arkitekto ng Microsoft Azure na si Anna Fenyushina "Kapag ang mga tao ay walang oras. Paano 100% gumamit ng mga chatbot at mga serbisyong nagbibigay-malay upang i-automate ang mga nakagawiang proseso", kung saan malinaw naming ipinakita kung ano ang mga chatbot sa Azure at kung ano ang mga senaryo para sa kanilang paggamit, at ipinakita rin kung paano gumawa ng bot sa QnA Maker sa loob ng 15 minuto at kung paano ang Ang istraktura ng query ay na-decipher sa LUIS. 

Ginawa namin ang webinar na ito bilang bahagi ng online marathon para sa mga developer na Dev Bootcamp. Ito ay tungkol sa mga produkto na nagpapabilis sa pag-unlad at nagpapagaan ng ilan sa mga nakagawiang workload mula sa mga empleyado ng kumpanya gamit ang mga tool sa automation at mga nakahandang pre-configure na Azure module. Ang mga pag-record ng iba pang mga webinar na kasama sa marathon ay makukuha sa mga sumusunod na link:

Pinagmulan: www.habr.com

Magdagdag ng komento