Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Ola, Habr! Hoxe mostrarémosche como usar Azure para resolver problemas que normalmente requiren intervención humana. Os axentes pasan moito tempo respondendo as mesmas preguntas, xestionando chamadas telefónicas e mensaxes de texto. Os chatbots automatizan a comunicación e o recoñecemento e reducen a carga das persoas. Os bots tamén se usan en Azure DevOps, onde permiten, por exemplo, aprobar versións, xestionar compilacións (ver, iniciar e deter) directamente desde Slack ou Microsoft Teams. En esencia, un chatbot lembra un pouco a unha CLI, só interactiva e permite que o programador permaneza no contexto da discusión do chat.

Neste artigo, falaremos de ferramentas para crear chatbots, mostraremos como se poden mellorar con servizos cognitivos e describiremos como acelerar o desenvolvemento con servizos preparados en Azure.

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Chatbots e servizos cognitivos: cales son as semellanzas e cales son as diferenzas?

Para crear bots en Microsoft Azure, utiliza o servizo Azure Bot e o Bot Framework. Xuntos representan un conxunto de software para construír, probar, despregar e administrar bots, que lle permite crear a partir de módulos preparados tanto sistemas de comunicación sinxelos como avanzados con soporte de voz, recoñecemento de linguaxe natural e outras capacidades.

Supoñamos que cómpre implementar un bot simple baseado nun servizo de preguntas e respostas corporativo ou, pola contra, crear un bot funcional cun sistema de comunicación complexo e ramificado. Para iso, pode utilizar unha serie de ferramentas, divididas en tres grupos: 

  1. Servizos para o desenvolvemento rápido de interfaces de diálogo (bots).
  2. Servizos de IA cognitiva preparados para diferentes casos de uso (recoñecemento de patróns, recoñecemento de voz, base de coñecemento e busca).
  3. Servizos para a creación e adestramento de modelos de IA.

Normalmente, a xente confunde intuitivamente "bots" e "servizos cognitivos" porque ambos conceptos baséanse no principio de comunicación e o caso de uso dos bots e servizos implica diálogos. Pero os chatbots traballan con palabras clave e disparadores, e os servizos cognitivos funcionan con solicitudes arbitrarias que normalmente son procesadas por humanos: 

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Os servizos cognitivos son outra forma de comunicarse co usuario, axudando a converter unha solicitude arbitraria nun comando claro e pasala ao bot. 

Así, os chatbots son aplicacións para traballar con solicitudes e os servizos cognitivos son ferramentas de análise intelixente de solicitudes que se lanzan por separado, pero ás que o chatbot pode acceder, converténdose en "intelixentes". 

Creación de chatbots

O diagrama de deseño recomendado para un bot en Azure é o seguinte: 

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Para deseñar e desenvolver bots en Azure, use Marco de bot. Dispoñible en GitHub exemplos de bots, as capacidades do framework cambian, polo que é necesario ter en conta a versión do SDK que se usa nos bots.

O marco ofrece varias opcións para crear bots: usando código clásico, ferramentas de liña de comandos ou diagramas de fluxo. A última opción visualiza os diálogos; para iso pode utilizar o xestor Bot Framework Composer. Foi construído sobre o SDK de Bot Framework como unha ferramenta de desenvolvemento visual que os equipos interdisciplinares podían usar para crear bots.

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Bot Framework Composer permítelle usar bloques para crear unha estrutura de diálogo coa que traballará o bot. Ademais, pode crear disparadores, é dicir, palabras clave ás que o bot reaccionará durante o diálogo. Por exemplo, as palabras "operador", "roubo" ou "parar" e "bastante".

En Bot Framework Composer, pode crear sistemas de diálogo complexos usando Diálogos adaptativos. Os diálogos poden usar tanto servizos cognitivos como tarxetas de eventos (tarxetas adaptativas):

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Despois da creación, pode implementar o chatbot nunha subscrición e un script preparado automaticamente creará todos os recursos necesarios: servizos cognitivos, plan de aplicacións, información sobre aplicacións, base de datos, etc.

QnA Maker

Para crear bots sinxelos baseados en bases de datos corporativas de preguntas e respostas, podes usar o servizo cognitivo QnA Maker. Implementado como un simple asistente web, permítelle introducir unha ligazón a unha base de coñecemento corporativa (URL de preguntas frecuentes) ou utilizar como base unha base de datos de documentos en formato *.doc ou *.pdf. Despois de crear o índice, o bot seleccionará automaticamente as respostas máis adecuadas ás preguntas do usuario.

Usando QnAMaker, tamén pode crear cadeas de preguntas aclaratorias coa creación automática de botóns, complementar a base de coñecemento con metadatos e adestrar aínda máis o servizo durante o uso.

O servizo pódese usar como un chatbot que implementa só esta función, ou como parte dun chatbot complexo que utiliza, dependendo da solicitude, outros servizos de IA ou elementos do Bot Framework.

Traballar con outros servizos cognitivos

Hai moitos servizos cognitivos diferentes na plataforma Azure. Tecnicamente, son servizos web independentes que se poden chamar desde código. Como resposta, o servizo envía json dun determinado formato, que se pode usar no chatbot.

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma
Os usos máis comúns dos chatbots son:

  1. Recoñecemento de textos.
  2. Recoñecemento das categorías de imaxes de Custom Vision Service definidas polo programador (caso de produción: recoñecemento de se un empregado leva un casco, gafas ou máscara).
  3. Recoñecemento facial (un excelente caso de uso é comprobar se a persoa enquisada publicou o seu propio rostro ou, por exemplo, unha foto dun can ou unha foto dunha persoa dun xénero diferente).
  4. Recoñecemento de voz.
  5. Análise da imaxe.
  6. Tradución (todos lembramos o ruído que provocou a tradución simultánea en Skype).
  7. Corrección ortográfica e suxestións para corrixir erros.

LUIS

Ademais, podes necesitar para crear bots LUIS (Servizo Intelixente de Comprensión Lingüística). Obxectivos do servizo:

  • Determina se a declaración do usuario ten sentido e se é necesaria a resposta do bot.
  • Reduce os esforzos para transcribir a voz do usuario (texto) en comandos comprensibles para o bot.
  • Predicir verdadeiros obxectivos/intencións do usuario e extraer información clave das frases do diálogo.
  • Permitir que o programador inicie o bot usando só algúns exemplos de recoñecemento de significado e posterior adestramento adicional do bot durante a operación.
  • Permite que o programador utilice a visualización para avaliar a calidade da transcrición do comando.
  • Axudar a melloras incrementais no verdadeiro recoñecemento de obxectivos.

De feito, o obxectivo principal de LUIS é comprender con certa probabilidade o que quería dicir o usuario e converter unha solicitude natural nun comando harmonioso. Para recoñecer os valores de consulta, LUIS usa un conxunto de intencións (significados, intencións) e entidades (xa sexan preconfiguradas polos desenvolvedores, ou "dominios" tomados e preformados: algunhas bibliotecas preparadas de frases estándar preparadas por Microsoft). 

Un exemplo sinxelo: tes un bot que che proporciona unha previsión meteorolóxica. Para el, a intención será a tradución dunha solicitude natural nunha "acción": unha solicitude de previsión meteorolóxica, e as entidades serán hora e lugar. Aquí tes un diagrama de como funciona a intención de CheckWeather para tal bot.

Intención
Esencia
Exemplo de consulta natural

Consulta o tempo
{"type": "location", "entity": "moscow"}
{"type": "builtin.datetimeV2.date", "entity": "futuro","resolution":"2020-05-30"}
Que tempo fará mañá en Moscova?

Consulta o tempo
{ "type": "intervalo de datas", "entity": "este fin de semana" }
Móstrame a previsión para esta fin de semana

Para combinar QnA Maker e LUIS podes usar Despachador

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Cando traballas con QnA Maker e recibes unha solicitude dun usuario, o sistema determina a porcentaxe de probabilidade de que a resposta de QnA coincida coa solicitude. Se a probabilidade é alta, o usuario simplemente recibe unha resposta desde a base de coñecemento corporativa; se é baixa, a solicitude pode enviarse a LUIS para aclaración. Usar Dispatcher permítelle non programar esta lóxica, senón determinar automaticamente este bordo da separación das solicitudes e distribuílas rapidamente.

Probando e publicando o bot

Outra aplicación local úsase para probar, Emulador de framework de bot. Usando o emulador, podes comunicarte co bot e comprobar as mensaxes que envía e recibe. O emulador mostra mensaxes tal e como aparecerían nunha interface de chat web e rexistra as solicitudes e respostas JSON ao enviar mensaxes ao bot.

Un exemplo de uso do emulador preséntase nesta demostración, que mostra a creación dun asistente virtual para BMW. O vídeo tamén fala sobre novos aceleradores para crear chatbots - modelos:

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma
https://youtu.be/u7Gql-ClcVA?t=564

Tamén podes usar modelos ao crear os teus chatbots. 
Os modelos permítenche non escribir de novo as funcións de bot estándar, senón engadir código preparado como "habilidade". Un exemplo pode ser traballar cun calendario, facer citas, etc. Código de habilidades preparadas publicado en github.

A proba foi exitosa, o bot está listo e agora hai que publicalo e conectar as canles. A publicación realízase mediante Azure e pódense utilizar mensaxeiros ou redes sociais como canles. Se non tes a canle necesaria para introducir datos, podes buscala na comunidade correspondente en GitHab. 

Ademais, para crear un chatbot completo como interface para comunicarse co usuario e cos servizos cognitivos, necesitará, por suposto, servizos adicionais de Azure, como bases de datos, sen servidor (Azure Functions), así como servizos LogicApp e, posiblemente , Rede de eventos.

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Avaliación e Analítica

Para avaliar a interacción do usuario, pode usar tanto as análises integradas do servizo Azure Bot como o servizo especial de Application Insights.

Como resultado, pode recoller información en función dos seguintes criterios:

  • Cantos usuarios accederon ao bot desde varias canles durante o período de tempo seleccionado.
  • Cantos usuarios que enviaron unha mensaxe volveron máis tarde e enviaron outra.
  • Cantas accións se enviaron e recibiron usando cada canle durante o intervalo de tempo especificado.

Usando Application Insights, pode supervisar calquera aplicación en Azure e, en particular, os chatbots, obtendo datos adicionais sobre o comportamento dos usuarios, as cargas e as reaccións dos chatbots. Nótese que o servizo Application Insights ten a súa propia interface no portal de Azure.

Tamén pode usar os datos recollidos a través deste servizo para crear visualizacións adicionais e informes analíticos en PowerBI. Pódese tomar un exemplo deste tipo de informe e modelo para PowerBI aquí.

Aceleramos o desenvolvemento mediante os servizos Azure: creamos chatbots e servizos cognitivos mediante a plataforma

Grazas a todos pola vosa atención! Neste artigo usamos material do seminario web da arquitecta de Microsoft Azure Anna Fenyushina “Cando a xente non ten tempo. Como usar ao 100 % os chatbots e os servizos cognitivos para automatizar os procesos rutineiros”, onde mostramos claramente cales son os chatbots en Azure e cales son os escenarios para o seu uso, e tamén demostramos como crear un bot en QnA Maker en 15 minutos e como a estrutura de consulta decífrase en LUIS. 

Fixemos este seminario web como parte do maratón en liña para desenvolvedores Dev Bootcamp. Tratábase de produtos que aceleran o desenvolvemento e alivian parte da carga de traballo rutineira dos empregados da empresa mediante ferramentas de automatización e módulos de Azure preconfigurados. As gravacións doutros seminarios web incluídos no maratón están dispoñibles nas seguintes ligazóns:

Fonte: www.habr.com

Engadir un comentario