{"id":86861,"date":"2020-06-30T19:42:06","date_gmt":"2020-06-30T17:42:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy"},"modified":"2020-06-30T19:42:06","modified_gmt":"2020-06-30T17:42:06","slug":"uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy","title":{"rendered":"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej, Habr! I dag vil vi tale om, hvordan man med Azure kan l\u00f8se opgaver, der normalt kr\u00e6ver menneskelig deltagelse. Operat\u00f8rer bruger meget tid p\u00e5 at besvare de samme sp\u00f8rgsm\u00e5l, h\u00e5ndtere telefonopkald og tekstbeskeder. Chatbots automatiserer kommunikationen og genkendelsen og reducerer belastningen p\u00e5 mennesker. Bots bruges ogs\u00e5 i Azure DevOps, hvor de for eksempel giver mulighed for at godkende udgivelser, styre bygninger \u2014 se, starte og stoppe \u2014 direkte fra Slack eller Microsoft Teams. I bund og grund minder en chatbot om en CLI, men er interaktiv og g\u00f8r det muligt for udvikleren at forblive i konteksten af diskussionen i chatten.<\/p>\n<p>I denne artikel vil vi tale om v\u00e6rkt\u00f8jerne til at oprette chatbots, vise, hvordan de kan forbedres ved hj\u00e6lp af kognitive tjenester, og beskrive, hvordan man kan fremskynde udviklingen ved hj\u00e6lp af de f\u00e6rdige tjenester i Azure.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/66dac4e72182da3c4acd3a25e50740b0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Chatbots og kognitive tjenester: hvad har de til f\u00e6lles og hvordan adskiller de sig?<\/h2>\n<p>\nFor at oprette bots i Microsoft Azure anvendes Azure Bot-tjenesten og Bot Framework-platformen. Sammen repr\u00e6senterer de en softwarepakke til at bygge, teste, implementere og administrere bots, som g\u00f8r det muligt at skabe b\u00e5de enkle og avancerede systemer til kommunikation med st\u00f8tte for tale, naturlig sproggenkendelse og andre funktioner.<\/p>\n<p>Lad os antage, at du har brug for at implementere en simpel bot baseret p\u00e5 en virksomheds tjeneste til sp\u00f8rgsm\u00e5l og svar, eller omvendt, at oprette en funktionel bot med et komplekst forgrenet kommunikationssystem. Til dette kan man benytte sig af en r\u00e6kke v\u00e6rkt\u00f8jer, der groft set kan opdeles i tre grupper:\u00a0<\/p>\n<ol>\n<li>Tjenester til hurtig udvikling af dialoggr\u00e6nseflader (bots).\n<\/li>\n<li>F\u00e6rdige kognitive AI-tjenester til forskellige anvendelsesscenarier (billedgenkendelse, tale, vidensbase og s\u00f8gning).\n<\/li>\n<li>Tjenester til oprettelse og tr\u00e6ning af AI-modeller.\n<\/li>\n<\/ol>\n<p>\nNormalt blander folk intuitivt \"bots\" og \"kognitive tjenester\", fordi begge begreber er baseret p\u00e5 kommunikationen, og der er dialoger i anvendelsesscenarierne for bots og tjenester. Men chatbots arbejder med n\u00f8gleord og triggere, mens kognitive tjenester arbejder med vilk\u00e5rlige foresp\u00f8rgsler, der typisk behandles af mennesker:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/645bb695955f94e4b7aacf77b8277bf1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKognitive tjenester er en anden m\u00e5de at kommunikere med brugeren p\u00e5, hvilket hj\u00e6lper med at konvertere en vilk\u00e5rlig anmodning til en klar kommando og videreformidle den til robotten.\u00a0<\/p>\n<p>Chatbots er s\u00e5ledes applikationer til behandling af anmodninger, mens kognitive tjenester er v\u00e6rkt\u00f8jer til intelligent analyse af anmodninger, der aktiveres separat, men som chatbotten kan tilg\u00e5 for at blive 'intelligent'.\u00a0<\/p>\n<h2>Oprettelse af chatbots<\/h2>\n<p>\nDen anbefalede designmodel for en bot i Azure ser s\u00e5ledes ud:\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/896c6341845b1a7349418441f1df5fef.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTil design og udvikling af bots i Azure anvendes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Microsoft\/botframework\">Bot Framework<\/a><\/noindex>. P\u00e5 GitHub findes der <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/BotBuilder-Samples\">bots eksempler<\/a><\/noindex>, mulighederne i rammev\u00e6rket \u00e6ndrer sig, s\u00e5 det er vigtigt at tage h\u00f8jde for den version af SDK, der anvendes i bots.<\/p>\n<p>Rammev\u00e6rket giver flere muligheder for at oprette bots: ved hj\u00e6lp af klassisk kode, kommandolinjev\u00e6rkt\u00f8jer eller flowcharts. Den sidste mulighed visualiserer dialoger, og til dette kan man bruge manageren <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/BotFramework-Composer\">Bot Framework Composer<\/a><\/noindex>. Den blev udviklet p\u00e5 baggrund af Bot Framework SDK som et visuelt udviklingsv\u00e6rkt\u00f8j, som tv\u00e6rfaglige teams kan bruge til at skabe bots.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/b0228e78228e8cb12ead15317c373a3c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBot Framework Composer g\u00f8r det muligt at skabe dialogstruktur ved brug af blokke, som botten vil arbejde med. Derudover kan man oprette triggere, dvs. n\u00f8gleord, som botten vil reagere p\u00e5 under dialogen. For eksempel p\u00e5 ordene 'operat\u00f8r', 'tyveri' eller 'stop' og 'nok'.<\/p>\n<p>I Bot Framework Composer kan man oprette komplekse grene af dialoger ved hj\u00e6lp af <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/bot-service\/bot-builder-adaptive-dialog-introduction?view=azure-bot-service-4.0\">Adaptive Dialogs<\/a><\/noindex>. Dialoger kan bruge b\u00e5de kognitive tjenester og h\u00e6ndelseskort (Adaptive Cards):<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/a82771a42655d4dd678abe7997859caf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEfter oprettelsen kan chatbots implementeres i abonnementet, hvor et automatisk genereret script opretter alle n\u00f8dvendige ressourcer: kognitive tjenester, applikationsplan, applikationsindsigt, database osv.<\/p>\n<h3>QnA Maker<\/h3>\n<p>\nFor at oprette enkle bots baseret p\u00e5 virksomhedens databaser med sp\u00f8rgsm\u00e5l og svar kan man bruge den kognitive tjeneste QnA Maker. Den implementeres som en simpel webwizard, der g\u00f8r det muligt at indtaste et link til virksomhedens vidensbase (FAQ URLs) eller tage udgangspunkt i en samling dokumenter i formatet *.doc eller *.pdf. Efter oprettelsen af indekset vil botten selv finde de mest relevante svar p\u00e5 brugerens sp\u00f8rgsm\u00e5l.<\/p>\n<p>Med QnAMaker kan du ogs\u00e5 oprette k\u00e6der af opf\u00f8lgende sp\u00f8rgsm\u00e5l med automatisk oprettelse af knapper, tilf\u00f8je metadata til vidensbasen og videreuddanne tjenesten under brug.<\/p>\n<p>Tjenesten kan bruges som en chatbot, der kun udf\u00f8rer denne funktion, eller som en del af en kompleks chatbot, der afh\u00e6ngigt af foresp\u00f8rgslen bruger andre AI-tjenester eller elementer fra Bot Framework.<\/p>\n<h2>Arbejdet med andre kognitive tjenester<\/h2>\n<p>\nAzure-platformen har mange forskellige kognitive tjenester. Teknisk set er det uafh\u00e6ngige webtjenester, der kan kaldes fra koden. Tjenesten returnerer et specifikt format JSON, der kan bruges i chatbotten.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/9a986e53162e48c726ecab6bb0352119.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nDe mest anvendte i chatbots er:<\/p>\n<ol>\n<li>Teksgenkendelse.\n<\/li>\n<li>Genkendelse af bestemte kategorier af billeder udarbejdet af udvikleren Custom Vision Service (produktionscase: genkendelse af, om en medarbejder har p\u00e5 sig hjelm, beskyttelsesbriller eller maske).\n<\/li>\n<li>Ansigtsgenkendelse (et fremragende brugsscenarie - at kontrollere, om ansigtet, der er pr\u00e6senteret af respondenten, er deres eget, eller om det er et billede af en hund eller et billede af en person af det andet k\u00f8n).\n<\/li>\n<li>Talgenkendelse.\n<\/li>\n<li>Billedanalyse.\n<\/li>\n<li>Overs\u00e6ttelse (vi husker alle, hvor meget st\u00f8j den synkrone overs\u00e6ttelse i Skype skabte).\n<\/li>\n<li>Beskrevet kontrol og forslag til fejlretning.\n<\/li>\n<\/ol>\n<p><\/p>\n<h3>LUIS<\/h3>\n<p>\nDer kan ogs\u00e5 v\u00e6re behov for <noindex><a rel=\"nofollow\" href=\"https:\/\/www.luis.ai\/\">LUIS<\/a><\/noindex> (Language Understanding Intelligent Service). Tjenestens opgaver:<\/p>\n<ul>\n<li>At bestemme, om brugerens udsagn giver mening, og om botten skal reagere.\n<\/li>\n<li>At reducere indsatsen til transskription af brugerens tale (tekst) til forst\u00e5elige kommandoer for botten.\n<\/li>\n<li>At forudsige brugernes sande m\u00e5l\/intentioner og udtr\u00e6kke n\u00f8gleoplysninger fra s\u00e6tninger i dialogen.\n<\/li>\n<li>At give udvikleren mulighed for at starte botten ved at bruge kun nogle f\u00e5 eksempler p\u00e5 meningsgenkendelse og efterf\u00f8lgende videreuddanne botten under drift.\n<\/li>\n<li>At give udvikleren mulighed for at bruge visualisering til at vurdere kvaliteten af transskriptionen af kommandoerne.\n<\/li>\n<li>At hj\u00e6lpe med trin-for-trin forbedringer af genkendelsen af de sande m\u00e5l.\n<\/li>\n<\/ul>\n<p>\nHovedm\u00e5let med LUIS er at forst\u00e5, hvad brugeren mener med en vis sandsynlighed og konvertere naturlige foresp\u00f8rgsler til velstrukturerede kommandoer. For at genkende betydningen af foresp\u00f8rgsler bruger LUIS et s\u00e6t af intentioner (mener) og entiteter (enten forudindstillede af udviklere eller taget fra og foruddefinerede 'dom\u00e6ner' - nogle klarlagte biblioteker af typiske s\u00e6tninger forberedt af Microsoft).\u00a0<\/p>\n<p>Et simpelt eksempel: du har en bot, der giver vejrudsigter. For den vil intentionen v\u00e6re at konvertere den naturlige foresp\u00f8rgsel til en \"handling\" - en foresp\u00f8rgsel om vejrudsigten, mens entiteterne vil v\u00e6re tid og sted. Her er en skematisk oversigt over, hvordan intentionen CheckWeather fungerer for en s\u00e5dan bot.<\/p>\n<p>Intention<br \/>\nEntitet<br \/>\nEksempel p\u00e5 naturlig foresp\u00f8rgsel<\/p>\n<p>CheckWeather<br \/>\n{\"type\": \"location\", \"entity\": \"moscow\"}<br \/>\n{\u00abtype\u00bb: \u00abbuiltin.datetimeV2.date\u00bb, \u00abentity\u00bb: \u00abfuture \u00bb,\u00ab resolution \u00bb:\u00ab 2020-05-30 \u00bb}<br \/>\nHvordan bliver vejret i morgen i Moskva<\/p>\n<p>CheckWeather<br \/>\n{\"type\": \"date_range\", \"entity\": \"this weekend\"}<br \/>\nVis mig vejrudsigten for denne weekend<\/p>\n<p>For at kombinere QnA Maker og LUIS kan du bruge <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/botbuilder-tools\">Dispatcher<\/a><\/noindex>.\u00a0<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/5ecf836fc5675676b8460662aa30dd2d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e5r du arbejder med QnA Maker og modtager en foresp\u00f8rgsel fra en bruger, bestemmer systemet, med hvilken procentuel sandsynlighed svaret fra QnA passer til foresp\u00f8rgslen. Hvis sandsynligheden er h\u00f8j, vises svaret fra den virksomhedsspecifikke vidensbase blot til brugeren; hvis den er lav, kan foresp\u00f8rgslen sendes til LUIS for afklaring. Brug af Dispatcher g\u00f8r det muligt at undg\u00e5 at programmere denne logik og automatisk bestemme, hvor gr\u00e6nsen for adskillelse af foresp\u00f8rgsler ligger og hurtigt fordele dem.<\/p>\n<h3>Test og offentligg\u00f8relse af botten<\/h3>\n<p>\nTil test bruges endnu et lokalt program, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/botframework-sdk#Bot-Framework-Emulator\">Bot framework emulator<\/a><\/noindex>. Med emulatorsystemet kan du interagere med botten og kontrollere de beskeder, den sender og modtager. Emulatoren viser beskederne som de vil se ud i en webchat-interface og registrerer foresp\u00f8rgsler og JSON-svar under udvekslingen af beskeder med botten.<\/p>\n<p>Eksemplet p\u00e5 brug af emulatoren findes i denne demonstration, hvor oprettelsen af en virtuel assistent til BMW vises. Videoen fort\u00e6ller ogs\u00e5 om de nye acceleratorer til at skabe chatbots - templates:<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/8e6c93f8d200fed2128e13e328c3369b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/u7Gql-ClcVA?t=564\">https:\/\/youtu.be\/u7Gql-ClcVA?t=564<\/a><\/noindex><\/i><\/p>\n<p>Du kan ogs\u00e5 bruge templates, n\u00e5r du opretter dine egne chatbots.\u00a0<br \/>\nSkabeloner muligg\u00f8r, at man ikke beh\u00f8ver at skrive typiske botfunktioner fra bunden, men kan tilf\u00f8je allerede klar kode som \"f\u00e6rdigheder\". Et eksempel kan v\u00e6re arbejde med kalenderen, planl\u00e6gning af m\u00f8der osv. Koden til de f\u00e6rdige f\u00e6rdigheder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/botframework-skills\">udgivet<\/a><\/noindex> p\u00e5 github.<\/p>\n<p>Testningen er gennemf\u00f8rt med succes, botten er klar, og nu skal den offentligg\u00f8res og forbindes til kanalerne. Offentligg\u00f8relsen foretages ved hj\u00e6lp af Azure, og som kanaler kan man bruge messengers eller sociale medier. Hvis den \u00f8nskede kanal til datainput ikke er tilg\u00e6ngelig, kan man lede efter den i det relevante community p\u00e5 GitHub.\u00a0<\/p>\n<p>For at skabe en fuldgyldig chatbot, som interface til kommunikation mellem brugeren og kognitive tjenester, har man selvf\u00f8lgelig brug for yderligere Azure-tjenester, s\u00e5som databaser, serverless (Azure Functions), samt tjenester som LogicApp og muligvis Event Grid.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/ad218db9267934e319e74b60b5b8c96a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Evaluering og analyse<\/h3>\n<p>\nTil at vurdere interaktionen med brugerne kan man bruge b\u00e5de den indbyggede analyse i Azure Bot Service og den specialiserede tjeneste Application Insights.<\/p>\n<p>Som et resultat kan man indsamle information p\u00e5 f\u00f8lgende kriterier:<\/p>\n<ul>\n<li>Hvor mange brugere har f\u00e5et adgang til botten fra forskellige kanaler over den valgte tidsperiode.\n<\/li>\n<li>Hvor mange brugere, der sendte en besked, vendte tilbage senere og sendte endnu en.\n<\/li>\n<li>Hvor mange handlinger der blev sendt og modtaget via hver kanal i den angivne tidsramme.\n<\/li>\n<\/ul>\n<p>\nVed hj\u00e6lp af Application Insights kan man overv\u00e5ge enhver applikation i Azure og specielt chatbots, som giver yderligere data om brugeradf\u00e6rd, belastninger og chatbot-reaktioner. Det skal bem\u00e6rkes, at tjenesten Application Insights har sit eget interface p\u00e5 Azure-portalen.<\/p>\n<p>De data, der er indsamlet gennem denne tjeneste, kan ogs\u00e5 bruges til at skabe yderligere visualiseringer og analytiske rapporter i PowerBI. Et eksempel p\u00e5 s\u00e5dan en rapport og en skabelon til PowerBI kan findes <noindex><a rel=\"nofollow\" href=\"https:\/\/microsoft.github.io\/botframework-solutions\/solution-accelerators\/tutorials\/view-analytics\/1-intro\/\">her<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Accelerer udviklingen ved hj\u00e6lp af Azure-tjenester: opret chatbots og kognitive tjenester ved hj\u00e6lp af platformen\" src=\"\/wp-content\/uploads\/2020\/06\/f11895acd918e511455c56616aeb107a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak til alle for opm\u00e6rksomheden! I denne artikel har vi brugt <noindex><a rel=\"nofollow\" href=\"https:\/\/webinars.softline.com\/mira\/miravr\/9848571835\">materiale<\/a><\/noindex> fra webinaret med Microsoft Azure-arkitekten Anna Fenushina \"N\u00e5r folk ikke n\u00e5r det. Hvordan man f\u00e5r 100 % ud af chatbots og kognitive tjenester til at automatisere rutineprocesser\", hvor vi klart viste, hvad chatbots i Azure er, og hvilke scenarier de anvendes i, samt demonstrerede, hvordan man p\u00e5 15 minutter kan oprette en bot i QnA Maker, og hvordan anmodningsstrukturen fortolkes i LUIS.\u00a0<\/p>\n<p>Vi har lavet dette webinar som en del af online-marathonet for udviklere Dev Bootcamp. Her talte vi om produkter, der accelererer udviklingen og aflaster medarbejdernes rutinearbejde med hj\u00e6lp fra automatiseringsv\u00e6rkt\u00f8jer og f\u00e6rdigkonfigurerede Azure-moduler. Optagelser af andre webinare, der indgik i marathonet, er tilg\u00e6ngelige via links:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/webinars.softline.com\/mira\/miravr\/1844543042\">Azure DevOps som et v\u00e6rkt\u00f8j til at organisere den komplette udviklingscyklus p\u00e5 ethvert sprog og for enhver platform ved at benytte DevOps-praksis<\/a><\/noindex>\u00a0<br \/>\nVi fort\u00e6ller om udviklingen og de nye muligheder i Azure DevOps-tjenesten. Vi g\u00e5r i dybden med alle fem hovedkomponenter, og hvordan tjenesten underst\u00f8tter industriel softwareudvikling. V\u00e6rt \u2014 Vladimir Gus\u0430\u0440\u043e\u0432, Microsoft MVP.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/webinars.softline.com\/mira\/miravr\/3765774186\">Organisering af CI\/CD ved hj\u00e6lp af Azure Pipelines<\/a><\/noindex><br \/>\nVi ser p\u00e5, hvordan man implementerer tilgangen 'build as code' for enhver programmeringssprog ved hj\u00e6lp af multi-staged YAML pipelines. V\u00e6rt \u2014 Vladimir Gus\u0430\u0440\u043e\u0432, Microsoft MVP.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/webinars.softline.com\/mira\/miravr\/0241941537\">Praksis for samtidig underst\u00f8ttelse af flere versioner af produktet i industriel udvikling ved hj\u00e6lp af Azure Repos<\/a><\/noindex><br \/>\nVi diskuterer, hvordan man udvikler strategier for opbevaring af kildekode, og hvordan man bruger versionsstyringssystemer med Azure Repos. V\u00e6rt \u2014 Vladimir Gus\u0430\u0440\u043e\u0432, Microsoft MVP.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/webinars.softline.com\/mira\/miravr\/7191200961\">WhiteSource. Overv\u00e5gning af sikre open source-biblioteker\u00a0<\/a><\/noindex><br \/>\nVi introducerer metoder til styring af open source i udviklingen og praktisk anvendelse af v\u00e6rkt\u00f8jet WhiteSource. Vi taler om at finde s\u00e5rbarheder i komponenter med open source og opretholdelse af licensrensning med WhiteSource. V\u00e6rter \u2014 Diana Lisbaron, Sales Director for WhiteSource, og Oreshkina Daria, Web Control, officiel distribut\u00f8r af WhiteSource i Rusland.<\/li>\n<\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/softline\/blog\/508406\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Azure \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0442\u0440\u0430\u0442\u044f\u0442 \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u043e\u0434\u043d\u0438 \u0438 \u0442\u0435 \u0436\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b, \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u044b\u0435 \u0437\u0432\u043e\u043d\u043a\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0427\u0430\u0442-\u0431\u043e\u0442\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u0438 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043b\u044e\u0434\u0435\u0439. \u0422\u0430\u043a\u0436\u0435 \u0431\u043e\u0442\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432\u00a0 Azure DevOps, \u0433\u0434\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":86862,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-86861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Azure \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 Azure: \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0447\u0430\u0442-\u0431\u043e\u0442\u044b \u0438 \u043a\u043e\u0433\u043d\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Azure \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-06-30T17:42:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-30T17:42:06+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Vi accelererer udviklingen med Azure-tjenester: vi laver chatbots og kognitive tjenester med platformens midler | ProHoster","description":"Hej, Habr! I dag vil vi fort\u00e6lle, hvordan man l\u00f8ser opgaver med Azure, som normalt kr\u00e6ver menneskelig indgriben.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0423\u0441\u043a\u043e\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 Azure: \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0447\u0430\u0442-\u0431\u043e\u0442\u044b \u0438 \u043a\u043e\u0433\u043d\u0438\u0442\u0438\u0432\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0435\u043c, \u043a\u0430\u043a \u0440\u0435\u0448\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Azure \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044f.","og:url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/uskoryaem-razrabotku-s-pomoshhyu-servisov-azure-sozdaem-chat-boty-i-kognitivnye-sluzhby-sredstvami-platformy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-06-30T17:42:06+00:00","article:modified_time":"2020-06-30T17:42:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"86861","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:05:26","updated":"2022-10-07 09:06:51","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/86861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=86861"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/86861\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/86862"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=86861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=86861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=86861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}