Guia de Creacion de Apps de IA para Developers

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 44

Guía de creación

de aplicaciones
de IA para
desarrolladores
Segunda edición
Crea tu primera aplicación
conver asacional con Microsoft
Azure AI
Elaine Chang y Darren Jeford

INFORME
SEGUNDA EDICIÓN

Guía de creación de
aplicaciones de IA
para desarrolladores
Crea tu primera aplicación
conversacional con Microsof Azure AI

Elaine Chang y Darren Jeford

Beijing • Boston • Farnham • Sebastopol • Tokio


Guía de creación de aplicaciones de IA para desarrolladores
Elaine Chang y Darren Jefford
Copyright © 2020 O’Reilly Media. Todos los
derechos reservados. Impreso en los Estados Unidos
de América.
Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol,
CA 95472.
Los libros de O'Reilly se pueden comprar para uso promocional educativo,
empresarial o de ventas. Existen ediciones online para la mayoría de los títulos
(http://oreilly.com). Para obtener más información, ponte en contacto con nuestro
departamento de ventas corporativo/institucional: 800-998-9938 o
[email protected].

Editora de adquisiciones: Rebecca Novack Correctora: Athena Lakri


Editora de desarrollo: Nicole Taché Responsable del diseño interior: David Futato
Editor de producción: Christopher Faucher Diseñadora de la portada: Karen Montgomery
Corrector de estilo: Charles Roumeliotis Ilustradora: Rebecca Demarest

Julio de 2018: primera edición


Abril de 2020: segunda edición

Historial de revisiones de la segunda edición


17-04-2020: primera versión

El logotipo de O'Reilly es una marca comercial registrada de O'Reilly Media, Inc.


Guía de creación de aplicaciones de IA para desarrolladores, la imagen de la portada
y la imagen comercial relacionada son marcas comerciales de O'Reilly Media, Inc.
Las opiniones expresadas en esta obra son las de los autores y no representan las
opiniones de la editorial. Aunque la editorial y los autores han puesto todo de su parte
para garantizar que la información y las instrucciones contenidas en esta obra sean
precisas, renuncian a cualquier responsabilidad por los errores u omisiones, incluidas,
entre otras, la responsabilidad de los daños resultantes del uso o dependencia de esta
obra. El lector es responsable del uso que haga de la información y las instrucciones
contenidas en esta obra. Si cualquier ejemplo de código u otra tecnología que
contenga o describa esta obra están sujetos a licencias de código abierto o a derechos
de propiedad intelectual de terceros, el lector tiene la responsabilidad de asegurarse
de que el uso que haga de los mismos cumpla dichas licencias o derechos.
Esta obra es una colaboración entre O'Reilly y Microsoft. Consulta nuestra
declaración de independencia editorial.

978-1-492-08058-9
[LSI]
Índice

Prólogo .......................................................................... vii

Guía de creación de aplicaciones de


IA para desarrolladores ................................................... 1
Introducción ...................................................................................... 1
La intersección de los datos, la IA y el cloud.................................... 3
Microsoft Azure AI ........................................................................... 5
IA conversacional ............................................................................. 6
Características principales de los asistentes virtuales ......................17
Desarrollo de un asistente virtual .....................................................23
Conexión de asistentes a clientes y canales .....................................24
Opcional: Añadir inteligencia al asistente con aptitudes..................26
Habilitación de los análisis para el asistente virtual .........................27
Hoja de ruta y recursos adicionales ..................................................29
Creación de una Inteligencia Artificial responsable.........................30

iii
Prueba la
Inteligencia Artificial
Presta un mejor servicio
a tus clientes con
soluciones dotadas de
Inteligencia Artificial.
Crea un chatbot.
Entrena e implementa
modelos de machine
learning. Extrae
conocimientos de tu
contenido. Crea
aplicaciones
inteligentes.

Explora gratis
12 servicios de
Inteligencia Artificial
durante 12 meses
con tu cuenta.
Empieza gratis >

Obtén ayuda
con tu proyecto
Habla con un
especialista en ventas >

v
Agradecimientos

Nos gustaría dar las gracias a las siguientes personas de Microsoft


que contribuyeron al informe como asesores y revisores técnicos:
Lili Cheng, Anand Ramen, Ben Brown, Chris Mullins, Cindy Note‐
boom, Deborah Harrison, Dewain Robinson, Em Ivers, Lauren Mills,
Patrick Volum, Robert Standefer, Ryan Lengel Isgrig, Steve
Sweetman, Ted Li, Tyler Mays-Childers, William Mendoza y Prem
Prakash.
v
Prólogo

Los creadores del ordenador moderno querían aumentar el intelecto


humano y ampliar nuestras capacidades trascendiendo las
limitaciones de nuestra capacidad intelectual colectiva. Cuando los
investigadores y los científicos informáticos de la década de los 50
concibieron el «ordenador pensante», iniciaron una rápida evolución
hacia la Inteligencia Artificial (IA), sentando las bases de una
tecnología que tendría un tremendo impacto en el mundo durante las
siguientes décadas.
La inteligencia artificial ya está en todas partes. La gente ni siquiera
se da cuenta de que la Inteligencia Artificial les está permitiendo
disfrutar de mejores experiencias. Aunque la Inteligencia Artificial
ya está presente en prácticamente todas las cosas que usamos, desde
termostatos hasta aspersores, también está ofreciendo oportunidades
en nuevos ámbitos, como los vehículos autónomos, la investigación
farmacéutica y la agricultura de precisión. La Inteligencia Artificial
es una frontera que estimula a los desarrolladores a crear formas
poderosas e innovadoras de abordar problemas difíciles de resolver.
Aunque en el pasado la Inteligencia Artificial era del dominio
exclusivo de investigadores e instituciones, la reciente disponibilidad
de infraestructura, plataformas y servicios de Inteligencia Artificial
ha permitido que todo el poder de la Inteligencia Artificial ya esté
disponible para desarrollar y crear soluciones inteligentes.
Los servicios y herramientas de Inteligencia Artificial en el cloud
permiten el desarrollo de soluciones basadas en Inteligencia Artificial
—incluidos el machine learning, la minería del conocimiento, los
agentes inteligentes y los modelos previamente entrenados— sin
necesidad de conocimientos especializados.
En los últimos años se ha producido un aumento de la adopción de la
Inteligencia Artificial, catalizado por la inmensa cantidad de datos
digitales, servicios de aplicaciones y el enorme poder de la
computación. Como resultado, las tecnologías de Inteligencia
Artificial como la comprensión del lenguaje natural, el análisis de
opinión, el reconocimiento de voz y la comprensión de imágenes han
dado paso a numerosas aplicaciones en un amplio abanico de sectores
de la industria.
Prólogo | vii
Una de las aplicaciones más atractivas de la Inteligencia Artificial es
hacer que nuestra vida sea mejor y más fácil. Desde el desarrollo de
la computación, las personas han soñado con tener conversaciones
trascendentes con los ordenadores, expresando nuestras necesidades
e ideas en las formas en que nos comunicamos unos con otros
mediante el lenguaje natural: decirle algo al ordenador y que te
responda. La IA conversacional desplaza el modelo de interacción de
las ordenes controladas por la máquina específicas de cada dominio
a interfaces de conversación centradas en las personas y en la
expresión. Con la IA conversacional, los desarrolladores pueden
hacer que los ordenadores se comuniquen como personas,
reconociendo las palabras, entendiendo la intención y respondiendo
de formas que parezcan naturales y familiares.

— Lili Cheng, vicepresidenta corporativa de


IA conversacional de Microsoft

viii | Prólogo
Guía de creación
de aplicaciones de IA
para desarrolladores

Introducción
En este libro analizamos los requisitos para aplicar soluciones de
Inteligencia Artificial debidamente probadas a los problemas
cotidianos. Para ayudarte a conocer las posibilidades de la
Inteligencia Artificial, te enseñaremos a crear un asistente virtual: una
aplicación de IA conversacional capaz de entender el lenguaje,
percibir grandes cantidades de información y responder de forma
inteligente. Durante el proceso, compartiremos los numerosos
recursos y funcionalidades de la IA que están disponibles para los
desarrolladores.
A continuación ofrecemos un resumen del contenido de este libro:
«La intersección de los datos, la IA y el cloud»
En esta sección se explica la base tecnológica de este libro y por
qué estas tecnologías se ofrecen cada vez más en el cloud.
«Microsof Azure AI»
En esta sección se presenta la plataforma Microsoft Azure IA con
una variedad de servicios, infraestructura y herramientas que
permiten a los desarrolladores crear aplicaciones y agentes de IA
y añadir funciones de minería del conocimiento y machine
learning. Este libro se centra en las aplicaciones de IA
conversacional y proporciona referencias a recursos adicionales
para otros ámbitos de Azure IA.
«IA conversacional»
En esta sección se explica la evolución del procesamiento del
lenguaje natural, el servicio Language Understanding de
Microsoft (anteriormente denominado LUIS) y el ecosistema Bot
Framework, casos de uso comunes de la IA conversacional y el
ciclo de vida de desarrollo de las aplicaciones de
IA conversacional.

Guía de creación de aplicaciones de IA para desarrolladores | 1


«Características principales de los asistentes virtuales»
En esta sección se explican las características principales de los
asistentes virtuales, incluidas las siguientes: control completo
para los desarrolladores, aptitudes conversacionales
preconfiguradas y reutilizables, integración flexible
y reconocimiento conceptual, conocimientos empresariales
capturados y distribuidos, entrada multimodal, tarjetas
adaptables y capacidades empresariales. El acelerador de
soluciones de asistente virtual de Bot Framework reúne las
prácticas recomendadas para permitir a las organizaciones
ofrecer experiencias avanzadas de asistente conversacional
adaptadas a su marca, personalizadas para sus usuarios
y disponibles en un amplio conjunto de aplicaciones
y dispositivos.
«Desarrollo de un asistente virtual»
En esta sección se proporcionan instrucciones para crear una
aplicación de IA conversacional con el acelerador de soluciones
de asistente virtual y referencias a tutoriales online.
«Conexión de asistentes a clientes y canales»
En esta sección se proporcionan instrucciones para conectar la
aplicación de IA conversacional a los clientes y canales.
Microsoft ofrece una amplia variedad de canales y adaptadores
que permiten llevar las experiencias conversacionales a los
usuarios finales dondequiera que estén.
«Opcional: Añadir inteligencia al asistente con aptitudes»
En esta sección se presentan las «aptitudes», una forma de
conectar características de la plataforma a las experiencias
conversacionales, con referencias a tutoriales online.
«Habilitación de los análisis para el asistente virtual»
En esta sección se proporcionan instrucciones para configurar
herramientas de análisis para la aplicación de IA conversacional.
Los conocimientos del panel de análisis de la aplicación de IA
conversacional pueden sugerir mejoras importantes para su
eficacia y rendimiento.
«Hoja de ruta y recursos adicionales»
Obtén más información sobre la inversión futura de Microsoft en
la Inteligencia Artificial conversacional.
«Creación de una Inteligencia Artificial responsable»
Concluiremos con una reflexión sobre cómo la plataforma de
Azure AI anima a los desarrolladores a crear soluciones
responsables y fiables que traten a las personas de manera justa.

2 | Guía de creación de aplicaciones de IA para desarrolladores


La intersección de los datos, la IA y el
cloud
Hoy en día estamos haciendo posible que los ordenadores aprendan
de grandes cantidades de datos y que interactúen y respondan de una
forma más natural con el mundo, en lugar de seguir las rutinas
preprogramadas.1 Considera las siguientes prestaciones del software
moderno:
Visión por ordenador
La capacidad de «ver» reconociendo objetos y sus relaciones en
una imagen o un vídeo y crear datos a partir del entorno físico.
Reconocimiento de voz y síntesis
La capacidad de «escuchar» entendiendo las palabras que dicen
las personas y transcribiéndolas en forma de texto y al revés: leer
texto en voz alta con una voz natural.
Comprensión del lenguaje
La capacidad de «comprender» el significado de las palabras
y responder, teniendo en cuenta los matices y las complejidades
del lenguaje (tales como jergas y expresiones idiomáticas).
Cuando los ordenadores pueden participar de forma eficaz en un
diálogo con las personas, lo llamamos IA conversacional.
Conocimiento
La capacidad de «razonar» representando y entendiendo la
relación entre personas, cosas, lugares y eventos.
¿Cómo encajan estas prestaciones en las aplicaciones empresariales?
A través del machine learning, las aplicaciones dotadas de
Inteligencia Artificial presentan la capacidad de razonar al ser
capaces de desbloquear grandes cantidades de datos diversos que han
sido recopilados con el paso de tiempo en repositorios y almacenados
en conjuntos de datos masivos. Estos sistemas de IA entienden y
crean significado a partir de datos no estructurados tales como
correos electrónicos, chats y notas escritas a mano, lo cual no era
posible anteriormente. Y, lo que es más importante, estos sistemas
interactúan ahora con los clientes y contactan con ellos en diferentes
canales y de formas hiperpersonalizadas.

1 Lili Cheng, «Why You Shouldn’t Be Afraid of Artificial Intelligence»”, Time, 4 de


enero de 2018, https://ti.me/2GEkknZ.

La intersección de los datos, la IA y el cloud | 3


Mediante la aplicación de estas capacidades, las empresas están
usando aplicaciones dotadas de Inteligencia Artificial para
transformar digitalmente todos los aspectos de sus organizaciones.
Están transformando sus productos obteniendo conocimientos de los
datos de sus clientes. Están optimizando las operaciones comerciales
mediante la predicción de anomalías y la mejora de la eficiencia.
Están capacitando a sus empleados a través de herramientas
inteligentes e interactuando con sus clientes a través de agentes
conversacionales que ofrecen experiencias más personalizadas.
Para diseñar tecnología para los seres humanos, es importante saber
cómo las personas trabajan, se divierten y viven. Las soluciones de
IA actuales complementan y liberan el potencial humano y las
actividades creativas. Y estas soluciones personalizadas también
deben ser capaces de aprender y adaptarse a las nuevas condiciones
externas, tal como lo hacemos las personas.
Una de las áreas más fascinantes de la investigación es sincronizar la
inteligencia emocional y cognitiva para poder crear sistemas de
IA conversacionales que modelen el lenguaje humano y cuenten con
conocimientos sobre la interacción a menudo ilógica e impredecible
de las personas. En palabras de Lili Cheng, vicepresidenta
corporativa de IA conversacional de Microsoft, «esto significa que la
IA tiene que poder reconocer cuándo las personas son más eficientes
sin ayuda, cuándo debe apartarse, cuándo no es necesario ayudar
o grabar y cuándo no debe interrumpir o distraer».2
Como los conjuntos de datos están aumentando y puesto que varían
enormemente en cuanto a su tamaño, cada vez es más importante
ofrecer a los desarrolladores un acceso rápido a opciones flexibles
para el almacenamiento y el procesamiento. Por lo tanto, las
organizaciones están recurriendo al cloud cada vez más, ya que
proporciona esta diversidad de datos y esta flexibilidad. Además, los
proveedores de servicios de cloud proporcionan un completo
conjunto de herramientas eficaces que permiten poner en práctica las
capacidades de IA de las que hemos hablado. Su enorme conectividad
permite usar cualquier tipo de dispositivo conectado para migrar
enormes cantidades de datos al cloud en tiempo real para su análisis
y procesamiento inteligente a cualquier escala. Para los
desarrolladores, el cloud ofrece la infraestructura y las herramientas
necesarias para proporcionar seguridad, disponibilidad, conformidad
y capacidad de gestión de grado empresarial para las aplicaciones
y los servicios empresariales.

2 Lili Cheng, «Why You Shouldn’t Be Afraid of Artificial Intelligence»”, Time, 4 de


enero de 2018, https://ti.me/2GEkknZ.

4 | La intersección de los datos, la IA y el cloud


Microsoft Azure AI
La plataforma Azure IA de Microsoft pretende llevar la Inteligencia
Artificial a todos los desarrolladores y brindarles medios para que
puedan innovar y acelerar sus proyectos con diversos servicios,
infraestructuras y herramientas. Azure AI admite una gran variedad
de casos de uso, así como diferentes niveles de experiencia y formas
de trabajar. Por ejemplo, Azure ofrece el SDK de Azure Bot Service
y Bot Framework, que permite a los desarrolladores crear
experiencias conversacionales completas. Asimismo, Azure
Cognitive Services ofrece a los desarrolladores servicios de
IA específicos del dominio disponibles como API para crear
aplicaciones que puedan ver, escuchar y entender. Azure Machine
Learning permite a los desarrolladores y científicos de datos crear
modelos de IA personalizados, con inversiones en el hardware y la
infraestructura necesarios para respaldar la plataforma y las
herramientas de aprendizaje profundo y machine learning.
Aplicaciones y agentes de IA
Los modelos de IA líderes del sector que se utilizan hoy en día
en productos de Microsoft como Office 365, Teams, Dynamics
365, Cortana, Xbox, HoloLens y Bing están disponibles para tus
propias aplicaciones a través de una plataforma de servicios
cognitivos democratizados. Puedes personalizar algunos de estos
modelos con tus propios datos y ejecutarlos sin conexión
y online.
El libro Creación de aplicaciones inteligentes con API cognitivas
proporciona un análisis detallado de lo que hay detrás de las
aplicaciones que ven, oyen, entienden e interpretan las
necesidades de las personas.
Azure Bot Service, junto con Bot Framework, permite a los
desarrolladores crear experiencias conversacionales avanzadas.
La nueva solución Power Virtual Agents, disponible como parte
de Power Platform, se basa en Bot Framework y permite a los
desarrolladores crear experiencias conversacionales y componer
con otros componentes de Bot Framework.
Minería del conocimiento
Azure Cognitive Search funciona en muchos tipos de datos para
transformar la información no estructurada en contenido apto
para búsquedas. Extrae conocimientos e información
estructurada, descubre patrones y relaciones y revela las
opiniones, entre otras muchas cosas.
En el informe técnico «Extraer conocimientos útiles de todo tu
contenido» se explica cómo funciona la minería del
conocimiento, los casos de uso, las soluciones líderes del sector
y recursos adicionales para aquellos que quieran empezar
a trabajar con la minería del conocimiento.
Microsoft Azure AI | 5
Machine learning
Los desarrolladores pueden obtener acceso a las funciones
avanzadas de machine learning de Azure IA a través de los
servicios de Azure Machine Learning (AML). AML es un
servicio en el cloud administrado en el que puedes entrenar,
administrar e implementar modelos en el cloud o en dispositivos
perimetrales con Python y herramientas como cuadernos de
Jupyter. Incluso puedes implementar modelos de reconocimiento
y clasificación de imágenes de TensorFlow utilizando una
variedad de redes neuronales profundas en el hardware Project
Brainwave FPGA de Microsoft en Azure para la inferencia y el
entrenamiento, que ofrece un rendimiento extremadamente alto
y baja latencia.
El libro Machine learning reflexivo con Python: un enfoque
controlado por pruebas proporciona un punto de partida para la
programación de IA que puede ser útil para los lectores
interesados en usar AML.
Para ayudarte a empezar a trabajar en Azure IA, puedes utilizar los
recursos disponibles en el sitio web de Azure AI.
En este libro, nos centraremos en mostrar cómo puedes crear una
aplicación de IA conversacional con Bot Framework.

IA conversacional
El procesamiento del lenguaje natural (PNL) ofrece a los equipos la
capacidad de leer, comprender e inferir el significado del lenguaje
humano. Desde la década de los 50, los científicos informáticos han
estado trabajando en los desafíos del PLN, pero las limitaciones de
potencia informática y tamaños de los datos obstaculizaron los
avances en el procesamiento y análisis de componentes textuales,
sentimientos, partes del discurso y las distintas entidades que
conforman la comunicación en lenguaje natural.
Eso cambió en la década de 2010. Los avances en computación en el
cloud y machine learning, y la disponibilidad de grandes cantidades
de datos textuales y conversacionales de sistemas de mensajería,
redes sociales y webchats nos han permitido hacer grandes progresos
en PLN. Los avances en PNL han hecho posible que los equipos no
solo identifiquen las palabras en el texto, sino que también entiendan
el significado que hay detrás de esas palabras y las relaciones
entre ellas.

6 | IA conversacional
El PLN funciona analizando un gran cuerpo de texto generado por
una persona y transformándolo en datos legibles para una máquina.
El PLN identifica y extrae los principales metadatos del texto,
incluidos los siguientes:
Entidades
El PLN identifica entidades en el texto como personas, lugares
y cosas. Las entidades también pueden ser piezas de información
que requieran una extracción especial, como fechas y horas.
Relaciones
El PLN identifica cómo se relacionan las entidades a través de
información semántica.
Conceptos
El PLN extrae conceptos generales del cuerpo de texto que no
aparecen explícitamente. Por ejemplo, la palabra «excel» puede
devolver conceptos como «herramientas de productividad»
y «números», aunque estos términos no aparezcan en el texto. Se
trata de una herramienta muy potente para establecer conexiones
que pueden no parecer obvias a primera vista.
Sentimiento
El PLN puntúa el nivel de positividad o negatividad del texto.
Esto resulta útil, por ejemplo, para evaluar la opinión acerca de
un producto o servicio. O, en el contexto de atención al cliente,
esta funcionalidad sirve para determinar si la conversación se
debe pasar a una persona, tras detectar un valor de negatividad.
Emociones
Este es el análisis de sentimiento con mayor detalle. En este caso,
el PNL clasifica no solo lo «positivo» y lo «negativo, sino el
«enfado», la «tristeza» y la «alegría».
Palabras clave
El PLN extrae palabras clave y frases para usarlas como base
para la indexación, la búsqueda y la clasificación.
Categorías
El PLN crea una taxonomía jerárquica para el asunto de los datos
y coloca esta taxonomía en una categoría de alto nivel
(clasificación de texto). Esto es útil para aplicaciones como
recomendar contenido relevante, generar anuncios, ordenar
correos electrónicos y determinar la intención de un usuario.
En el pasado, es posible que hayas intentado simular las
funcionalidades del PLN mediante enfoques basados en reglas, como
expresiones regulares o

IA conversacional | 7
árboles de decisión, con los que resultaba muy difícil entender la
intención de las preguntas realizadas por una persona. O es posible
que utilizaras modelos de machine learning, que requerían acceso
a conocimientos especializados, grandes conjuntos de datos
y herramientas complejas, lo que limitaba su implementación
a únicamente empresas de gran tamaño que pudieran afrontar el
gasto.
Consideremos ahora dónde estamos hoy. Las API fáciles de usar en
el cloud proporcionan funcionalidades de PNL que permiten el uso
generalizado de la IA conversacional. Desde la aparición de las
herramientas de código abierto hasta la llegada de las API del cloud,
las funcionalidades de PLN que anteriormente estaban limitadas
a círculos académicos y la comunidad de investigación ahora están
disponibles para un público más amplio en todos los sectores.

Language Understanding
(llamado anteriormente LUIS)
Language Understanding, un servicio desarrollado por Microsoft,
permite a los desarrolladores crear aplicaciones que pueden tomar la
entrada del usuario en lenguaje natural y extraer información
estructurada, incluido el significado y la intención. Language
Understanding es un servicio basado en machine learning para crear
experiencias en lenguaje natural, que permite crear rápidamente
modelos personalizados listos para la empresa que mejoren
continuamente.
Con Language Understanding, puedes utilizar un modelo
preconfigurado (por ejemplo, el tiempo o el calendario), personalizar
uno existente o crear el tuyo propio desde cero. Un modelo empieza
con una lista de intenciones generales del usuario que representan las
tareas o las acciones que el usuario desea realizar, como «reservar un
vuelo», «programar una reunión» o «contactar con atención al
cliente». Después de identificar la intención, deberás proporcionar
frases, denominadas «enunciados», para la intención.
Posteriormente, tendrás que etiquetar los enunciados con detalles
específicos que desees que Language Understanding extraiga del
enunciado. Los datos que se extraen del enunciado son una entidad.
Una entidad representa información detallada que es relevante para
la conversación. Language Understanding reconoce y etiqueta las
entidades que se mencionan en la entrada del usuario para que puedas
escoger la acción específica que deseas realizar para responder a la
solicitud del usuario. Puedes definir tus propias entidades, como la
terminología específica del dominio, o extraer entidades comunes
preconfiguradas, como fechas y horas, nombres propios, mediciones
y números. Con los dominios preconfigurados, tendrás un amplio
conjunto de entidades y enunciados para categorías comunes como
calendario, ocio, comunicación, domótica, etc.
8 | IA conversacional
Language Understanding también permite a los desarrolladores
mejorar de forma continua la aplicación a través del aprendizaje
activo. Language Understanding almacena las consultas del usuario
y selecciona los enunciados de los que no está seguro.
A continuación, puedes revisar los enunciados, seleccionar la
intención y marcar las entidades para enunciados del mundo real.
De esta forma, el modelo de lenguaje se reentrena con más datos.
El servicio se integra con otras herramientas de IA en el cloud para
llevar el procesamiento del lenguaje natural y la comprensión
a aplicaciones, bots y servicios del Internet de las cosas (IoT).
A través de su Bot Framework, Microsoft incorpora Language
Understanding y otros servicios cognitivos para el desarrollo de bots.

Ecosistema de Bot Framework


Microsoft Bot Framework (figura 1) tiene un ecosistema de
herramientas y servicios que proporcionan una experiencia integral
para la creación de aplicaciones de IA conversacional.

Figura 1: Ecosistema de Bot Framework

Con el SDK de Bot Framework, los desarrolladores pueden modelar


y crear fácilmente una conversación sofisticada utilizando sus
aplicaciones de programación favoritas. Los desarrolladores pueden
crear aplicaciones de IA conversacional que conversen de forma libre
o con interacciones más guiadas en las que proporcionen opciones
o acciones posibles al usuario. La conversación puede utilizar texto
simple o tarjetas más complejas que contengan texto, imágenes
y botones de acción. Los desarrolladores pueden añadir interacciones
de lenguaje natural y preguntas y respuestas que permitan a los
usuarios interactuar con los bots de forma natural.
Azure Bot Service te permite alojar aplicaciones inteligentes de
IA conversacional de nivel empresarial manteniendo la propiedad
y el control totales

IA conversacional | 9
de tus datos. Los desarrolladores pueden registrar y conectar sus bots
a los usuarios de Microsoft Teams y Web Chat, Facebook
Messenger, etc.
Para añadir más inteligencia a una aplicación de IA conversacional,
puedes añadir y personalizar modelos de API y servicios cognitivos
previamente entrenados, incluidas funciones de lenguaje, habla,
conocimiento y visión.
Bot Framework también proporciona un conjunto de aceleradores de
soluciones y plantillas para ayudar a crear experiencias de
conversación sofisticadas. El acelerador de soluciones de asistente
virtual reúne todos los componentes auxiliares y simplifica
enormemente la creación de un nuevo proyecto que incluya
intenciones de conversación básicas, integración de envíos, QnA
Maker, Application Insights y una implementación automatizada.
La solución Power Virtual Agents se basa en la plataforma Bot
Framework y proporciona una interfaz gráfica sin código para crear
experiencias conversacionales.

Casos prácticos de IA conversacional


Los clientes familiarizados con los asistentes virtuales y las
aplicaciones de mensajería están utilizando cada vez más las
interfaces de conversación, que pueden presentar una experiencia
más natural en la que las personas expresan sus necesidades a través
del lenguaje natural y realizan tareas rápidamente. Para muchas
compañías, las aplicaciones de IA conversacional se están
convirtiendo en un diferenciador frente a la competencia. Muchas
organizaciones están creando bots estratégicos disponibles dentro de
las mismas plataformas de mensajería en las que sus clientes pasan
tiempo. Organizaciones de todo el mundo están transformando sus
empresas con la IA conversacional, que puede permitir interacciones
más eficientes y naturales con sus clientes y empleados. Estos son
algunos casos prácticos comunes:
Atención al cliente
Las organizaciones utilizan la IA conversacional para
transformar sus relaciones con los clientes proporcionando
interacciones sencillas y naturales en distintos canales
y plataformas, como dispositivos domésticos, aplicaciones
móviles, canales sociales como Facebook Messenger y sitios
web. Las experiencias conversacionales no solo permiten que las
organizaciones lleguen a sus clientes dondequiera que estén, sino
también personalizar y mejorar continuamente sus interacciones.
Las compañías de seguros, por ejemplo, están facilitando a sus
clientes la obtención de respuestas a preguntas comunes, la
presentación de siniestros o incluso la generación de un
presupuesto para un plan de seguros.
10 | IA conversacional
Las empresas minoristas también permiten a los usuarios realizar
un seguimiento rápido de la antigüedad de los envases y obtener
actualizaciones del estado de los pedidos, así como el traspaso de
los clientes a un chat con un agente humano. Las empresas de
telecomunicaciones utilizan asistentes virtuales con funciones de
IA para obtener más información sobre los clientes con el fin de
ofrecer interacciones personalizadas provechosas, aumentar los
ingresos e incrementar la productividad de los equipos de
atención al cliente.
Asistente empresarial
Las organizaciones utilizan la IA conversacional para mejorar la
implicación de los empleados al conectar a las personas, las
tareas, la información y los servicios de forma más eficaz con
interfaces más naturales e intuitivas. Mediante la integración de
asistentes de empleados con interfaces de voz y texto en
dispositivos empresariales y plataformas de conversación
existentes (como Microsoft Teams, Slack y Web Chat), las
organizaciones aceleran el proceso de gestión de los calendarios,
identificando salas de reuniones disponibles, encontrando
a personas con conocimientos específicos o poniéndose en
contacto con el departamento de recursos humanos.
La integración con Dynamics, Power Apps, ServiceNow y otros
proveedores de TI simplifica el acceso de los empleados y les
permite encontrar fácilmente los datos y realizar las tareas que
desean hacer. Asimismo, la integración en las búsquedas añade
la capacidad de proporcionar datos empresariales de una manera
natural para los usuarios.
Optimización de centros de llamadas
La integración de una experiencia conversacional en un sistema
de comunicaciones telefónicas del centro de atención telefónica
puede reducir el tiempo de llamada con los agentes humanos
aclarando la información de antemano o resolviendo solicitudes
sencillas sin necesidad de un agente humano. Además, la
solución reemplaza las soluciones clásicas de respuesta de voz
interactiva (IVR) con una experiencia de conversación moderna
y permite una experiencia de usuario coherente durante toda la
llamada o hasta que esta se transfiera a un agente humano.
El análisis posterior a la llamada evalúa la calidad de las llamadas
y los comentarios de los clientes, con información disponible
para mejorar el flujo de llamadas y optimizar la experiencia del
usuario, aumentar la resolución del contacto a la primera
y satisfacer otros indicadores clave de rendimiento (KPI).
El mismo asistente se puede exponer a través de canales de texto
adicionales, lo que permite a los usuarios finales interactuar
a través del canal de su elección y aumentar la rentabilidad de la
inversión al garantizar que todos los usuarios, tanto si utilizan
mensajes SMS como canales más sofisticados, puedan participar.

IA conversacional | 11
Asistente de voz en el vehículo
Los asistentes activados por voz integrados en los automóviles
proporcionan a los conductores y a los pasajeros la capacidad de
realizar operaciones comunes (como la navegación o la radio),
así como escenarios centrados en la productividad, como
cambiar la hora de una reunión si vas a llegar tarde, añadir
elementos a la lista de tareas y experiencias proactivas en las que
el automóvil puede sugerir tareas que se deben realizar en
función de eventos como arrancar el motor, volver a casa
o activar el piloto automático. Otros casos prácticos incluyen el
servicio de programación de un vehículo en función de las
preferencias del usuario para los proveedores de servicio, la
ubicación del vehículo, la disponibilidad de programación del
proveedor, la gravedad del problema, la preferencia de préstamo,
los horarios personales y de trabajo y otras muchas variables.
Esto es lo que se consigue cuando se incorporan los datos de un
proveedor de automoción e ilustra la experiencia totalmente
integrada posible gracias a la solución de asistente virtual.
Asistente para la hostelería
Un asistente virtual integrado en el dispositivo de una habitación
de hotel puede ofrecer una amplia selección de escenarios
centrados en la hostelería: ampliar una estancia, retrasar la salida
del hotel, servicio de habitaciones, servicios de conserjería
y búsqueda de restaurantes y lugares de interés. La aplicación se
puede vincular a una cuenta de productividad, lo que permite
ofrecer experiencias más sofisticadas, como servicio de
despertador, advertencias meteorológicas y patrones de
aprendizaje en todas las estancias.
Estos son algunos ejemplos de los tipos de aplicaciones de
IA conversacional en los que nos centraremos en este libro. Veamos
ahora el flujo de trabajo típico para desarrollar una aplicación de
IA conversacional.

Flujo de desarrollo de aplicaciones de IA


conversacional
El flujo de trabajo típico para desarrollar una aplicación de
IA conversacional es similar a otros tipos de proyectos: las fases
principales son diseñar, crear, probar, implementar, conectar
y evaluar (figura 2).3

3 Estas fases se describen más detalladamente en los documentos online de Azure.

12 | IA conversacional
Figura 2. Flujo de trabajo típico para desarrollar una
aplicación de IA conversacional

Analicemos cada fase de este flujo de trabajo.

Diseñar
El desarrollo de un bot, como el desarrollo de sitios web
y aplicaciones, debe comenzar con un diseño que ofrezca una gran
experiencia. Cuando las personas interactuamos con los bots,
esperamos que entiendan lo que decimos, que la respuesta que
recibimos sea adecuada y que recibamos un servicio impecable.
Esperamos que, si dejamos a medias la conversación, el bot se
acuerde de dónde lo dejamos.
Tu bot representa tu marca, tus productos y los servicios de tus
clientes y empleados, por lo que es imprescindible empezar con un
enfoque centrado en el diseño que garantice que el objetivo del bot
satisfaga la necesidad explícita o latente de la persona a la que presta
servicio. Para diseñar una experiencia excelente, sugerimos las
siguientes prácticas recomendadas: investigar a los usuarios objetivo,
definir las identidades de los bots, crear los guiones de los escenarios
de bots, diseñar el flujo de la conversación y definir un plan de
evaluación, sin especificar los detalles de desarrollo técnico.
Para cada una de estas actividades de diseño, estas son las principales
preguntas que hay que plantearse:
Investigar a los usuarios objetivo
¿Quiénes son tus usuarios? ¿Cuáles son sus objetivos,
necesidades y expectativas? ¿Cuál es el contexto de su
interacción con el bot? ¿Cómo es su entorno? ¿Cómo les ayudará
el bot? ¿Qué servicios debe proporcionar el bot?
Definición de las identidades de los bots
¿Cómo debería ser tu bot (por ejemplo, un avatar)? ¿Cómo se
debería llamar? ¿Transmite el bot los valores de tu organización?
¿Cuál es la personalidad de tu bot? ¿Tu bot es un hombre o una
mujer? ¿Puede responder a preguntas no relacionadas con el
tema? ¿Qué tono de voz debe utilizar el bot? ¿Cómo gestionaría
el bot diferentes situaciones? ¿Cómo debe responder el bot (con
gestión proactiva, reactiva o basada en excepciones)?
IA conversacional | 13
Escenarios de guiones de bot
¿Cuál es el recorrido de los usuarios a los que se dirige el bot?
¿Qué debe hacer el bot y qué no? ¿Cuáles son los objetivos y las
prioridades de los casos de uso de tu bot?
Diseño del flujo de conversación
¿Qué flujos de conversación puedes esperar de tus casos de uso
principales? ¿Simples preguntas y respuestas, notificaciones
push, instrucciones paso a paso o interacciones más complejas?
Definición de un plan de evaluación
¿Cómo medirás el éxito? ¿Qué medidas deseas utilizar para
mejorar tu servicio y dónde debes insertar la instrumentación?
Antes de escribir el código, revisa las directrices de diseño de bots en
la documentación de Bot Framework de Microsoft para conocer las
prácticas recomendadas.
Bot Framework proporciona un conjunto de herramientas para la fase
de diseño, incluidas las siguientes:

• Archivos .chat para crear un boceto de las conversaciones entre


el usuario y el bot para escenarios específicos
• El comando bf chatdown para convertir los archivos .chat en
transcripciones útiles
• Bot Framework Emulator, que abre un archivo .transcript para
ver una representación realista de las conversaciones (figura 3)

14 | IA conversacional
Figura 3. Vista de un archivo .transcript en Bot Framework Emulator

Crear
Un bot es un servicio web de transferencia de estado representacional
(REST) que se comunica con el usuario enviando y recibiendo
mensajes y eventos desde interfaces de conversación como salas de
chat o widgets de Web Chat. Con Azure Bot Service y Bot
Framework de Microsoft, puedes crear bots en una gran variedad de
entornos de desarrollo y lenguajes. Puedes iniciar el desarrollo de tu
bot en el portal de Azure o usar una de las plantillas del SDK de Bot
Framework para el desarrollo local. Las plantillas admiten los
lenguajes C#, JavaScript y Python, y son compatibles con Java en la
versión preview inicial en el momento de escribir este documento.
Después de crear el bot básico, amplía su funcionalidad de la forma
que requiera tu diseño. Puedes añadir funcionalidades de PNL
mediante Language Understanding, añadir una base de conocimiento
para responder preguntas comunes mediante QnA Maker, añadir
funcionalidades para administrar flujos de conversación complejos y
varios dominios de conocimiento mediante la herramienta Dispatch
y añadir gráficos o menús mediante Tarjetas adaptables. Asimismo,
Microsoft proporciona herramientas de línea de comandos que te
ayudarán a crear, administrar y probar estos recursos de bot como
parte de un proceso de DevOps.
Puedes acceder a una gran variedad de ejemplos que muestran las
funciones conversacionales disponibles a través del SDK, incluidas
funciones de diálogo básicas
IA conversacional | 15
como los diálogos con varios turnos y funciones más avanzadas como
la mensajería proactiva y la autenticación.
Además, Microsoft proporciona una plantilla de asistente virtual más
avanzada, que se recomienda como punto de partida para crear una
experiencia conversacional más sofisticada. Reúne muchas prácticas
recomendadas para crear experiencias de conversación y automatiza
la integración de componentes que los desarrolladores de Bot
Framework han encontrado muy beneficiosos.
Por ejemplo, una experiencia conversacional basada en la plantilla de
asistente virtual permite a los desarrolladores trabajar con varios
lenguajes, modelos de PNL para intenciones de conversación básicas,
personalidades adaptadas para responder a preguntas más generales,
generación de lenguaje integrada para respuestas más naturales, una
experiencia de introducción para nuevos usuarios, cambio de
contexto y compatibilidad con las aptitudes.
En la siguiente sección de este libro, utilizaremos la plantilla de
asistente virtual para crear una aplicación de IA conversacional.

Probar
Para probar la aplicación de IA conversacional, Microsoft
proporciona Bot Framework Emulator, que permite a los
desarrolladores probar las conversaciones de forma rápida y sencilla.
También puedes escribir pruebas unitarias mediante el SDK de Bot
Framework, para centrarte en las pruebas de funcionalidad de
diálogos específicos. Una vez configurado a través del portal de
Azure, se puede acceder a tu bot a través de una interfaz de chat web,
lo que permite a los usuarios realizar pruebas más amplias al principio
del proceso de desarrollo.

Publicar
Cuando estés listo para que tu bot esté disponible en la Web, publica
tu bot en Azure o en tu propio servicio web o centro de datos:
(dondequiera que se alojaría una aplicación web normal).

Conectar
Azure Bot Service se encarga de la mayor parte del trabajo necesario
para conectar tus bots a una amplia variedad de canales
y dispositivos. A través del portal de Azure, puedes conectar tus bots
a Facebook Messenger, Slack, Microsoft Teams, Cortana, correo
electrónico, Telegram, Twilio, LINE y otros canales. También
puedes utilizar widgets de Web Chat para insertar los bots en tus
sitios web o aplicaciones móviles.

16 | IA conversacional
Puedes utilizar el canal Direct Line para conectar el bot a tu propia
aplicación cliente o el canal Direct Line Speech que permite
interfaces de voz de baja latencia con aplicaciones cliente mediante
el SDK de Microsoft Speech. Esto te permite incluir experiencias de
texto y voz en aplicaciones de escritorio, aplicaciones móviles
y dispositivos como automóviles, altavoces y despertadores.
Bot Framework y los miembros de la comunidad de código abierto
también proporcionan adaptadores basados en código para conectar
tus bots a otros canales, como Google Assistant, Amazon Alexa,
Webex Teams, sockets web y webhooks.

Evaluar
Las grabaciones de las conversaciones entre los bots y los usuarios
proporcionan información valiosa sobre el negocio que te ayuda
a evaluar el rendimiento de tu bot. En esta fase, las prácticas
recomendadas incluyen la evaluación de las métricas de éxito que has
definido durante la fase de diseño, la revisión de los registros de
instrumentación, la recopilación de comentarios de los usuarios, los
ajustes y la iteración. Bot Framework proporciona consultas de
Application Insights de ejemplo y un panel de Power BI para ayudarte
a captar toda el espectro de conversaciones de tu bot con los usuarios
y obtener conocimientos clave sobre el estado y el comportamiento
de tu bot.

Características principales de los


asistentes virtuales
Basada en el SDK de Bot Framework, la solución de asistente virtual
de código abierto de Microsoft (disponible en C# y TypeScript) es
una plantilla de proyecto que reúne las prácticas recomendadas para
desarrollar un bot en la plataforma Microsoft Azure.
Las organizaciones se ven cada vez más obligadas a ofrecer
experiencias avanzadas de asistente conversacional adaptadas a su
marca, personalizadas para sus usuarios y disponibles en una amplia
variedad de aplicaciones y dispositivos. Con el asistente virtual, tú
controlas el nombre, la voz y la personalidad más adecuados para tus
necesidades. Bot Framework proporciona soluciones que simplifican
la creación de un asistente virtual, lo que te permite crear y ampliar
tu bot con un amplio conjunto de herramientas completas de
desarrollo.
El asistente virtual reúne Bot Framework, Azure Bot Service
y Language Understanding dentro de la plataforma Azure IA para
simplificar la creación de tu propio asistente virtual (véase la
figura 1). Bot Framework y Azure Bot Service proporcionan
funciones conversacionales
Características principales de los asistentes virtuales | 17
básicas para el asistente virtual, incluida la administración de
diálogos, preguntas en lenguaje natural, cambio de contexto,
memoria y generación de lenguaje. El asistente virtual proporciona
funciones adicionales y conjuntos preempaquetados de interacciones
específicas del dominio denominadas aptitudes para ayudar a las
organizaciones a crear sus propias experiencias de asistente en una
variedad de lenguajes (como Calendar y ToDo).
El objetivo de los asistentes virtuales es simplificar y mejorar el
trabajo de los desarrolladores. En esta sección, explicaremos algunas
de las arquitecturas principales del asistente virtual.

Control total para desarrolladores


Con el asistente virtual, todos los aspectos de la experiencia del
usuario son de tu propiedad y eres tú quien los controla. Esto incluye
la marca, el nombre, la voz, la personalidad, las respuestas y el avatar.
Microsoft proporciona cinco personalidades de chat basadas en QnA
Maker de Azure Cognitive Service, lo que te permite adaptar la
personalidad del bot. El código fuente del asistente virtual y las
aptitudes complementarias se ofrecen como ejemplos para que
puedas personalizarlos. Tu asistente virtual se implementará dentro
de tu suscripción de Azure. Por lo tanto, todos los datos generados
por el asistente (preguntas formuladas, comportamiento de los
usuarios, etc.) se encuentran totalmente dentro de tu suscripción de
Azure. Consulta Información de cumplimiento y privacidad de
Cognitive Services y la sección Azure del Centro de confianza para
obtener más información.

Aptitudes preconfiguradas y reutilizables


Se proporcionan escenarios comunes de los asistentes virtuales como
aptitudes conversacionales reutilizables y se incluyen tareas como
encontrar puntos de interés cercanos, tachar un elemento de una lista
de tareas pendientes y responder a un correo electrónico. Las
aptitudes —proporcionadas en forma de código fuente— son
totalmente personalizables y constan de modelos de lenguaje para
varios lenguajes naturales, diálogos y código de integración. Se
pueden crear aptitudes adicionales e incluirlas en tu propio asistente
o en un ecosistema de aptitudes más amplio. Esto te permite
seleccionar las funcionalidades que tengan sentido para tu escenario
y que funcionen en tu sector específico. Como el asistente virtual
utiliza Azure Bot Service, puedes proporcionar a los usuarios acceso
a tu asistente a través de cualquiera de los canales y adaptadores
admitidos, lo que te permite llegar a tus usuarios finales dondequiera
que estén y usar experiencias e interfaces de usuario con las que ya
estén familiarizados y se sientan cómodos.
18 | Características principales de los asistentes virtuales
Integración flexible y reconocimiento del
contexto
La arquitectura del asistente virtual es flexible y se puede integrar con
funciones de voz o PNL existentes, sistemas backend, API
y dispositivos para poder personalizarlo y adaptar las respuestas en
función del contexto de los usuarios. El asistente también puede
reconocer el dispositivo o el canal a través del cual se comunica el
usuario, lo que se puede utilizar para optimizar la experiencia (por
ejemplo, usar voz en lugar de texto) y permitir al usuario cambiar de
un canal a otro, si fuera necesario.

Conocimientos empresariales capturados


y distribuidos
Bot Framework proporciona un amplio conjunto de métricas «out of
the box» que permiten recopilar datos de cualquier experiencia
conversacional en el nivel que se desee para conocer mejor lo que
piden tus clientes y dónde podrías tener oportunidades de mejorar el
servicio.
Azure Application Insights captura análisis completos en toda la
arquitectura. Microsoft también ha proporcionado paneles de muestra
de Power BI que ofrecen gráficos fáciles de leer que muestran
conversaciones populares, la duración de las conversaciones, los
usuarios distintos y otras estadísticas clave (figuras 4 y 5). Puedes
ampliar aún más el proceso de obtención de conocimientos con tu
propio sistema de machine learning para proporcionar experiencias
de IA personalizadas a tus usuarios. Al igual que todos los datos que
forman parte de tu bot, las métricas permanecen bajo tu control, lo
que te ayuda a cumplir las normativas de privacidad, como el
Reglamento General de Protección de Datos (GDPR, por sus siglas
en inglés).

Características principales de los asistentes virtuales | 19


Figura 4. Panel de Power BI para el asistente virtual de
Bot Framework: pestaña Información general

Figura 5. Panel de Power BI para el asistente virtual de


Bot Framework: detalle de conversaciones

Entrada multimodal
El asistente virtual proporciona una serie de mecanismos de entrada:
texto, toques en la pantalla y voz. Estos se puede ampliar según sea
necesario para incluir la visión a través de la integración de los
servicios cognitivos de visión. Los tipos de entrada adicionales se
pueden integrar fácilmente en función de las prestaciones del
dispositivo o de la plataforma. Una experiencia conversacional
basada en Bot Framework también se puede ampliar para que admita
gestos (si están disponibles en el dispositivo del usuario final) y, de
ese modo, permitir a los usuarios cambiar de un tipo de entrada a otro
según sea necesario.
20 | Características principales de los asistentes virtuales
El asistente virtual también se integra estrechamente con el servicio
Speech, parte de la familia Cognitive Services, junto con PNL
y gestión de diálogos, que permite el reconocimiento contextual de
las conversaciones. El streaming en tiempo real del audio de los
usuarios permite que el procesamiento del lenguaje natural y los
diálogos comiencen en cuanto el usuario deje de hablar, con lo que
se ofrece una experiencia más natural de baja latencia.
La funcionalidad de voz neuronal personalizada en el servicio
Speech permite a los clientes desarrollar voces personalizadas muy
realistas para interfaces de conversación naturales, con solo 30
minutos de audio.

Tarjetas adaptables
Las tarjetas adaptables proporcionan funciones gráficas como
tarjetas, imágenes y botones dentro del asistente. Las tarjetas son
partes de la interfaz de usuario independientes de la plataforma,
creadas en JSON, que se pueden intercambiar entre las aplicaciones
y los servicios compatibles. Cuando se incorpora en una aplicación
específica, el código JSON se transforma en una interfaz de usuario
nativa que se adapta automáticamente a su entorno. Te permite
diseñar e integrar interfaces de usuario ligeras para todas las
plataformas y marcos principales.
Si la plataforma de conversación tiene una pantalla, estas tarjetas se
pueden mostrar en una amplia gama de dispositivos y plataformas, lo
que proporciona una experiencia de usuario coherente con el servicio
o el contexto en el que se inserta la tarjeta. Los dispositivos que no
tienen pantallas pueden utilizar las respuestas habladas
proporcionadas junto con las tarjetas adaptables o cualquier
combinación de mecanismos de entrega apropiados para el contexto.
El asistente virtual y las aptitudes relacionadas funcionan a la
perfección con las tarjetas adaptables, y su diseño e información de
marca se pueden personalizar totalmente en función del escenario.
En la figura 6 se muestran algunos ejemplos.

Características principales de los asistentes virtuales | 21


Figura 6. Ejemplos de tarjetas adaptables

Funcionalidades para la empresa


Una experiencia conversacional típica basada en Bot Framework
utiliza una amplia variedad de funciones de Azure, como Azure Bot
Service, Language Understanding y Speech Cognitive Services,
además de un amplio conjunto de componentes auxiliares de Azure.
Esto significa que te beneficiarás de la infraestructura global de
Azure, que incluye la certificación ISO 27018, HIPAA, PCI DSS
y SOC 1, 2 y 3. Además, Language Understanding es compatible con
muchos lenguajes. El servicio Translator proporciona funciones de
traducción automática para ampliar aún más tu asistente virtual.
Ahora que sabemos lo que puede hacer el asistente virtual, vamos
a crear uno. En las próximas secciones, te guiaremos por el proceso
de creación y personalización de tu asistente virtual, añadiendo
inteligencia a tu asistente con aptitudes, conectando tu asistente a los
clientes y canales y habilitando los análisis en tu asistente. Durante el
proceso, proporcionaremos enlaces a tutoriales online, que se pueden
realizar con C# o TypeScript.

22 | Características principales de los asistentes virtuales


Desarrollo de un asistente virtual
En esta sección, te guiaremos por el proceso de creación de un
asistente virtual altamente funcional en tu propia suscripción de
Azure.4

La plantilla de asistente virtual


La plantilla del asistente virtual,5 como se mencionó anteriormente,
es una herramienta de código abierto que proporciona un punto de
partida preconfigurado para crear un asistente personalizado. Con la
plantilla, generarás un proyecto de asistente, que sigue la estructura
recomendada para un proyecto de bot. Tienes libertad para cambiar
esta estructura según sea necesario, pero ten en cuenta que los scripts
de implementación proporcionados esperan que algunos archivos
estén en lugares coherentes.
La creación de una experiencia conversacional mediante la plantilla
de asistente virtual requiere los siguientes recursos:

• Registro de Azure Bot (para configurar el punto de conexión


y la configuración del canal del bot)
• Azure Web App (para alojar la aplicación de bot)
• Cuenta de almacenamiento de Azure (para almacenar las transcripciones)
• Azure Application Insights (telemetría)
• Azure Cosmos DB (estado conversacional y estado de usuario:
esto se puede cambiar por Azure Storage para fines de
desarrollo).
• Language Understanding
• QnA Maker (incluido Azure Cognitive Search y una aplicación
web de Azure)

Para que puedas empezar a usar y aprovisionar estos recursos


rápidamente, Microsoft proporciona una plantilla de Azure Resource
Manager (ARM) y un conjunto de scripts de PowerShell
(compatibles con varias plataformas), además de los modelos de
Language Understanding para dominios de base comunes, bases de
conocimientos de QnA Maker (preguntas frecuentes sobre
personalidad y ejemplos) y herramientas de distribución.

4 Asimismo, puedes consultar la documentación de inicio rápido de Bot Framework


para crear una experiencia más sencilla que se puede ampliar para escenarios
adicionales.
5 La arquitectura y las funcionalidades de la plantilla se describen en la documentación
online de la plantilla del asistente virtual.

Desarrollo de un asistente virtual | 23


Tutorial online: Crear un asistente virtual
Sigue el tutorial online (en C# o TypeScript) para crear tu primera
aplicación de asistente virtual, que saluda a un nuevo usuario y se
encarga de las intenciones conversacionales básicas. En este tutorial:

1. Te asegurarás de disponer de una suscripción de Azure (puedes


obtener una cuenta gratuita de Azure si aún no tienes una).
2. Descargarás e instalarás los requisitos previos de desarrollo de
Bot Framework y la plantilla de asistente virtual.
3. Crearás tu proyecto de Virtual Studio con la plantilla del
asistente virtual.
4. Aprovisionarás el asistente con la plantilla de ARM
proporcionada y un script de PowerShell.
5. Ejecutarás y probarás tu asistente.

Tutorial online: Personalizar tu asistente


Ahora que tienes un asistente, puedes personalizarlo si lo deseas para
adaptarlo a la experiencia de tu marca y tus usuarios. Los diálogos se
pueden añadir directamente a tu asistente o a través de aptitudes si
deseas crear una solución más compleja (este tema se explica
a continuación). Sigue este tutorial online (en C# o TypeScript) para
aprender a realizar las siguientes tareas:

• Editar el saludo personalizando la tarjeta adaptable.


• Editar las respuestas personalizando los archivos de generación
de lenguaje (.lg).
• Editar los modelos cognitivos, por ejemplo, actualizando las
bases de conocimiento (FAQ o Chit-Chat), añadiendo una base
de conocimiento adicional y actualizando los archivos
LU locales para Language Understanding y QnA Maker.

Conexión de asistentes a clientes


y canales
Los clientes y los canales son las formas en que los usuarios pueden
interactuar con una aplicación de IA conversacional. La plataforma
Azure AI se encarga de la mayor parte del trabajo necesario para
conectar tus bots a una amplia variedad de canales y dispositivos.

24 | Conexión de asistentes a clientes y canales


A través del portal de Azure, puedes conectar tus bots a Facebook
Messenger, Slack, Microsoft Teams, Cortana, correo electrónico,
Telegram, Twilio, LINE y otros canales. Puedes utilizar widgets de
Web Chat para insertar los bots en tus sitios web o aplicaciones
móviles.6

Tutorial online: Habilitar la voz en tu asistente


Direct Line Speech es una solución robusta y completa para crear un
asistente de voz flexible y ampliable optimizado para la interacción
de voz con los bots. Direct Line Speech ofrece un alto nivel de
personalización y sofisticación para los asistentes de voz.
Sigue el tutorial online para realizar las siguientes tareas para
conectar tu asistente al canal Direct Line Speech y crear una
aplicación sencilla integrada con el SDK del servicio Speech para
demostrar las interacciones de voz.

1. Crea un recurso Speech Service.


2. Añade el canal Direct Line Speech.
3. Usa Bot Framework Emulator o la aplicación cliente de
ejemplo Speech y conéctala a tu asistente.
4. Cambia la voz.

Tutorial online: Mostrar tu asistente virtual


en Microsoft Teams
Si quieres crear un asistente empresarial, puedes utilizar el tutorial
online para conectar tu asistente a Microsoft Teams y crear el
manifiesto de aplicación necesario para instalar el asistente en Teams.

1. Añade el canal Microsoft Teams.


2. Instala la aplicación Teams App Studio.
3. Crea el manifiesto de aplicación para Teams.
4. Prueba el asistente en Teams.
5. Añade comandos.

6 Puedes encontrar información detallada sobre cómo conectar tu asistente a los canales
en la documentación de los canales de Bot Framework, que contiene un índice a la
izquierda con enlaces a instrucciones adicionales específicas del canal. Además,
tienes la opción de conectar tu asistente a Amazon Alexa, Google Home y otras
plataformas a través de la integración realizada por la comunidad de código abierto de
Bot Builder.

Conexión de asistentes a clientes y canales | 25


Opcional: Añadir inteligencia
al asistente con aptitudes
Una aptitud de Bot Framework proporciona un modelo de
componentes conversacional que permite a los desarrolladores
dividir la experiencia del asistente en un conjunto de elementos
conversacionales, que se pueden desarrollar de manera independiente
entre sí y proporcionan una experiencia unificada. Este es un patrón
común para las experiencias conversacionales más grandes, en las
que hay un «bot principal» con el que los usuarios interactúan y luego
se les envía a varias «aptitudes secundarias» para determinadas
tareas.
Piensa en el amplio conjunto de funciones y diálogos comunes que
los desarrolladores han creado en el pasado. Los escenarios de
productividad son un buen ejemplo, donde cada organización tendría
que crear sus propios modelos de lenguaje, diálogos, integración de
API y respuestas. El trabajo se complica aún más por la necesidad de
admitir varios idiomas, con lo que las organizaciones necesitan
realizar una gran cantidad de trabajo para crear su propia experiencia
de asistente.
Bot Framework proporciona una serie de aptitudes conversacionales
de código abierto, como Calendario, Correo electrónico, Tareas
pendientes y Punto de interés, para reducir este esfuerzo. El marco de
trabajo también ofrece una serie de aptitudes experimentales, entre
las que se incluyen Teléfono, Noticias, Tiempo, Música
y Administración de servicios de TI.
Estas aptitudes conversacionales son bots e incorporan modelos de
lenguaje, diálogos y código de integración. Se crean de la misma
manera que cualquier otro bot, pero se pueden incorporar a través de
una sencilla configuración en una experiencia conversacional
existente para ampliar su capacidad. Todos los aspectos de cada
aptitud son totalmente personalizables por los desarrolladores y el
código fuente completo se suministra en GitHub junto con el asistente
virtual.
Las organizaciones también pueden crear aptitudes para su uso
privado o compartirlas con otras organizaciones para confeccionar
sus propias experiencias. Por ejemplo, una aplicación conversacional
desarrollada por un servicio de comida a domicilio para sus propios
canales (aplicaciones móviles, sitios web y plataformas
conversacionales) también se puede exponer como una aptitud para
poder integrarla en dispositivos de IoT domésticos y automóviles
según corresponda. Esto pone de relieve una función básica de Bot
Framework y Azure Bot Service: permiten crear una aptitud una sola
vez y proporcionarla a través de muchos canales diferentes (incluidos
Alexa y Google Assistant) con una sola base de código para reducir
la duplicación en diferentes ecosistemas.
26 | Opcional: Añadir inteligencia al asistente con aptitudes
Tutorial online: Conectarse a una aptitud de
ejemplo
Según sea necesario, puedes añadir a tu asistente cualquiera de las
aptitudes de ejemplo proporcionadas en el repositorio de soluciones
de Bot Framework. Las aptitudes solo están disponibles en C# en este
momento, pero se pueden añadir a un asistente basado en JavaScript
o Python.
Sigue el tutorial online para realizar las siguientes tareas:

1. Implementa un proyecto de aptitudes de ejemplo


2. Añade la aptitud de ejemplo a tu asistente y vuelve a publicar el
asistente en Azure.
3. Prueba la aptitud de ejemplo.

Tutorial online: Crear una aptitud


personalizada
Si deseas crear tu propia aptitud personalizada para incorporarla en
tu asistente, puedes seguir el tutorial online, durante el cual realizarás
las siguientes tareas:

1. Crear tu proyecto de aptitudes con la plantilla de aptitudes en


Visual Studio
2. Aprovisionar los recursos de Azure con la plantilla de ARM
proporcionada y un script de PowerShell
3. Ejecutar la aptitud
4. Añadir tu aptitud a un asistente
5. Invocar tu aptitud

Habilitación de los análisis para el


asistente virtual
Los desarrolladores pueden obtener información clave sobre el estado
y el comportamiento de su asistente con las soluciones de análisis de
Bot Framework, que incluyen consultas de aplicaciones de ejemplo
y un panel (que utiliza Microsoft Power BI) para comprender en su
totalidad las conversaciones de los asistentes con los usuarios.
Los datos subyacentes capturados se puede utilizar en un amplio
conjunto de herramientas de análisis de datos, según sea necesario.

Habilitación de los análisis para el asistente virtual | 27


Tutorial online: Ver los análisis con Power BI
Sigue el tutorial online que incluimos aquí para conectar tu asistente
con los paneles proporcionados en la plantilla de análisis del asistente
virtual de Power BI:

1. Configura el registro de telemetría de tu asistente con la


aplicación Application Insights.
2. Abre la plantilla de análisis de asistente virtual (una plantilla de
Power BI) y conéctala con el registro de telemetría.

La plantilla de Power BI proporciona un panel completo para que


puedas obtener información valiosa sobre cómo funciona tu asistente
y qué áreas deben mejorarse. Te proporciona información, incluida
la siguiente:
Uso general
Conoce las métricas principales, como los usuarios distintos, los
mensajes y las conversaciones de cada día y los canales
(figura 4).
Diálogos
Conoce la popularidad de todos los diálogos, así como los
resultados (abandonados, cancelados, terminados o iniciados).
Language Understanding
Obtén información sobre las intenciones de Language
Understanding, que sirven para saber de qué hablan los usuarios.
Conversaciones
Consulta datos sobre las conversaciones por usuario y día y la
duración media, con la capacidad de profundizar en la
conversación para ver todos los enunciados de los usuarios
relacionados, las respuestas de los bots y los diálogos activados
durante la misma sesión (figura 5).
Transcripciones
Muestra las interacciones, las sesiones y las transcripciones de
las conversaciones entre el asistente y los usuarios.

28 | Habilitación de los análisis para el asistente virtual


Conocimientos de QnA Maker
Revisa los conocimientos sobre las consultas de usuarios
coincidentes con QnA Maker, que sirve para identificar las
lagunas de la base de conocimientos de los usuarios.
Información sobre los comentarios de los usuarios
Revisa los comentarios explícitos de los usuarios (positivos,
negativos) y los enunciados de los usuarios y los bots si tu bot ha
habilitado el middleware de comentarios en su telemetría.
Ahora que has aprendido a ver un ejemplo de los análisis del asistente
virtual, también puedes:

• Añadir telemetría al bot: descubre qué componentes de código


específicos son necesarios para la telemetría «out of the box».
• Analizar los datos de telemetría de tu bot.
• Trabajar con eventos generados por la telemetría de Bot
Framework Service.

Hoja de ruta y recursos adicionales


Microsoft sigue invirtiendo en su plataforma de Azure AI para
permitir a las organizaciones y los desarrolladores crear fácilmente
soluciones conversacionales robustas e implementarlas dondequiera
que estén sus clientes.
Por ejemplo, Microsoft sigue mejorando el proceso de creación de
experiencias conversacionales a través de versiones periódicas de los
SDK y herramientas de Bot Framework. A medida que evolucionan
las prácticas recomendadas, estas se incluyen en la plantilla del
asistente virtual y en las aptitudes de ejemplo.
Microsoft tiene el compromiso de facilitar la creación de bots con
Bot Framework Composer, que proporciona una interfaz visual con
poco código para crear, editar, probar y perfeccionar bots. Microsoft
también conecta los bots con más usuarios añadiendo más canales
y permitiendo la transferencia de comunicaciones realizadas por las
personas y telefónicas.
Asimismo, Microsoft permite conversaciones más naturales,
dinámicas y sofisticadas con los diálogos adaptables. Estos diálogos
permiten una interacción más natural, en la que el usuario puede pasar
fácilmente por todas las etapas de un diálogo, cambiando su opinión
sobre una respuesta anterior o proporcionando información adicional
para abordar preguntas posteriores automáticamente.
Hoja de ruta y recursos adicionales | 29
Además, Microsoft está mejorando y aumentando las
funcionalidades de Language Understanding y proporcionando
compatibilidad con la comprensión de documentos.
Para obtener recursos adicionales, echa un vistazo a lo siguiente:

• Documentación del SDK de Bot Framework de GitHub


• Documentación de Azure Bot Service de Microsoft
• Documentación de Bot Framework de Microsoft
• Noticias de Bot Framework en GitHub

Creación de una Inteligencia Artificial


responsable
El Instituto de investigación Capgemini, en su informe de julio de
2019, identificó que casi nueve de cada diez organizaciones se han
encontrado con resultados no deseados al usar la Inteligencia
Artificial. Los autores de este informe identificaron sus principales
preocupaciones, entre las que se incluyen:
• Exceso de confianza en las decisiones basadas en la máquina sin
supervisión
• Recopilación y procesamiento de datos personales en algoritmos
de IA sin consentimiento o para fines distintos de los originales
• Recomendaciones sesgadas y poco claras que dan como resultado
un acceso y precios discriminatorios de los productos o servicios
• Objeción de los ciudadanos a la recopilación y el control masivos,
y al uso de datos personales, incluidos los datos biométricos
• Exigencias de los clientes de razonamiento y claridad detrás de
una decisión tomada por un algoritmo de IA
Como hemos descrito en este libro, los avances revolucionarios en
las tecnologías de la IA en los últimos cinco años están empezando
a transformar los productos y los servicios, lo que nos afecta a todos
nosotros. Aunque muchos de estos cambios son para bien, también
plantean preocupaciones sobre las consecuencias involuntarias
resultantes de los prejuicios, la erosión de la privacidad, la
desinformación y la automatización.
Diseñar una IA de confianza requiere crear soluciones que reflejen
principios éticos profundamente arraigados en valores importantes y
atemporales. En Microsoft, seguimos los principios de equidad,
fiabilidad y seguridad, privacidad y protección, inclusividad,
transparencia y responsabilidad para crear sistemas de
IA responsables.
30 | Creación de una Inteligencia Artificial responsable
Al igual que con cualquier tecnología, la confianza dependerá en
última instancia de si los sistemas basados en IA se pueden utilizar de
forma fiable, segura y coherente, no solo en circunstancias normales,
sino también en condiciones inesperadas o cuando sufren un ataque.
—Presidente de Microsoft, Brad Smith, The Future Computed

La creación de aplicaciones de IA responsables es fundamental, pero


en última instancia depende de los desarrolladores de IA y de las
organizaciones que implementan tecnologías de IA garantizar un
comportamiento responsable. Para ayudar a los desarrolladores
y a las organizaciones a desarrollar soluciones responsables,
Microsoft ha propuesto 18 directrices de diseño para la interacción
humano-IA. Para los sistemas de IA conversacional, Microsoft
también ha publicado un conjunto de 10 directrices , que abarcan el
impacto, la transparencia, la inclusividad, la fiabilidad, la privacidad,
la seguridad y la detección de sesgo o la exclusión injusta.
Para adoptar un enfoque responsable con la IA, es esencial tener en
cuenta las necesidades de las personas que utilizarán la solución
durante el diseño inicial. Por ejemplo, un agente conversacional
diseñado para ayudar a los ciudadanos a obtener acceso a los servicios
públicos de atención sanitaria debe tener en cuenta y atender el
conjunto completo de habilidades de esas personas. El diseño de una
interfaz conversacional que admita la entrada de audio y texto ayuda
a aquellas personas con discapacidades visuales, así como a las
personas que conduzcan un vehículo.
Como usuario y desarrollador de soluciones de IA, debes definir
y seguir criterios que reflejen tus principios de IA. Por ejemplo, con
respecto a la equidad, es importante tener en cuenta los posibles
peligros de asignación, representación o asociación resultantes de los
prejuicios en los datos y los modelos. Una aplicación de IA que se
utilice para la selección de candidatos a un puesto de trabajo podría
asociar el sexo con determinadas aficiones, como actividades
deportivas, basadas en sesgos en los datos de entrenamiento y en los
modelos de incrustación de palabras, lo que podría dar lugar a una
selección injusta. Es importante evaluar y supervisar la equidad de
una solución de IA y mitigar la injusticia observada mediante
herramientas como el kit de herramientas Fair Learn.
También es importante comprender el contexto en el que opera la
solución. Por ejemplo, es especialmente importante que los bots que
tienen personalidades similares a las de los humanos interactúen
respetuosamente y de forma segura con los usuarios y cuenten con
medidas de seguridad integradas para manejar el uso indebido y el
abuso. Un bot que ayude a los consumidores a reservar una actividad
de ocio es probable que incorpore un tono y términos que no son
apropiados para un bot centrado en la atención sanitaria.
Creación de una inteligencia artificial responsable | 31
Con el fin de generar confianza, es fundamental que las personas
entiendan lo que puede hacer una solución y qué información recopila
esa solución. Algunas preguntas críticas que los desarrolladores
deben hacerse son las siguientes:

• ¿Deben saber los usuarios que están conversando con un bot?


• ¿Cómo maneja el sistema los fallos, por ejemplo, cuando se
produce un error en la transcripción de voz a texto?
• ¿Qué datos recopila y cómo controlan los usuarios esa
recopilación de datos?
• ¿Es susceptible el sistema a las nuevas formas de ataque?

Por último, para que las personas sean responsables y utilicen


y tomen decisiones de manera eficaz en función de los resultados de
una solución de IA, deben saber cómo funciona la solución y ser
capaces de explicar los resultados. Esto es fundamental en situaciones
en las que las consecuencias son importantes, como en una solución
sanitaria que puede afectar al tratamiento que recibe un paciente.
Tradicionalmente, los desarrolladores tenían que decidir entre
precisión y transparencia, pero las técnicas más recientes, incluida la
selección de modelos y las herramientas de interpretación de
modelos, combinadas con un mayor rigor en los datos y la
documentación del sistema, pueden eliminar esa disyuntiva.
Es importante diseñar soluciones de IA teniendo en cuenta tanto la
precisión como la transparencia.
El objetivo de considerar los principios responsables de la IA es
fomentar la confianza en la solución y, en última instancia, en las
personas, el servicio y la empresa que la solución representa.

32 | Creación de una inteligencia artificial responsable


Acerca de los autores
Elaine Chang es líder en desarrollo de productos y clientes de
IA conversacional en Microsoft, donde se centra en las soluciones
que incluyen el acelerador de soluciones y las aptitudes del asistente
virtual. Ha sido una de las principales responsables del producto
Microsoft Bot Framework y ha llevado Azure Bot Service a la
versión de disponibilidad general y a la conformidad empresarial.
Elaine es una ponente destacada en Microsoft Build Conference,
Microsoft Ignite Conference, Microsoft MVP Summit y Microsoft
AI Innovate, entre otros eventos. Elaine es también una innovadora
estratégica, una asesora profesional certificada y líder empresarial
que aboga por impulsar la innovación a través de la diversidad y la
inclusión.
Darren Jeford tiene más de 20 años de experiencia como ingeniero
y arquitecto en distintos sectores de la industria. En Microsoft, ha
desempeñado funciones de alto impacto orientadas al cliente para
diseñar y ofrecer soluciones muy complejas utilizando una amplio
conjunto de tecnologías. En los últimos años, ha liderado algunos de
los primeros proyectos de IA conversacional para distintas
organizaciones.
Darren trabaja actualmente como arquitecto jefe en el equipo de Bot
Framework de Microsoft, donde lidera el equipo del asistente virtual
para permitir experiencias conversacionales complejas con clientes
clave y el ecosistema de desarrolladores en general.
Darren es un ponente habitual en eventos de Microsoft y también es
el autor de dos libros sobre Visual Studio y BizTalk Server.

Creación de una inteligencia artificial responsable | 33


Obtén artículos técnicos, ● Mantente al día de las
Por desarro- código de ejemplo e
información sobre los
últimas tecnologías
● Contacta con tus
lladores para próximos eventos en
Microsoft. Source, el
compañeros en eventos
de la comunidad Regístrate
desarrolladores boletín informativo
cuidadosamente
● Aprende con recursos
prácticos
Boletín Microsoft.Source elaborado de la comunidad
de desarrolladores.

También podría gustarte