Mostrando entradas con la etiqueta Bots. Mostrar todas las entradas
Mostrando entradas con la etiqueta Bots. Mostrar todas las entradas

miércoles, 27 de abril de 2022

Ocho líneas de evolución de la Automatización Robótica de Procesos (RPA)

En el post anterior, identificábamos algunos retos y líneas de evolución de los robots conversacionales.

¿Qué tal si ahora echamos un vistazo a las líneas de evolución de la otra gran familia de robots software, tal y como los identifico en mi libro 'Robots en la sombra'? ¿Qué tal si ahora miramos a la Automatización Robótica de Procesos (RPA)?

La casualidad ha querido que justo ayer finalizase la lectura del libro 'Robotic Process Automation Projects: Build real-world RPA solutions using UiPath and Automation Anywhere' de Nandan MulakaraArun Kumar Asokan, una obra sin apenas teoría, muy volcada, simplemente, en mostrar en detalle casos concretos de uso de dos herramientas concretas, UiPath y Automation Anywhere.

Sin embargo, justo en el apéndice final sí se entra a identificar algunas de las tendencias y líneas de evolución de RPA y esto es lo que voy a recoger en este post: la visión de estos dos autores en cuanto a la evolución de este tipo de soluciones. 

Conviene advertir, no obstante, que aunque el libro es bastante moderno (fue publicado en 2020), el campo de la Automatización Robótica de Procesos se mueve de una manera tan vertiginosa que las tendencias de un momento se quedan obsoletas en seguida o, por lo menos, dejan de ser tan 'cool'.

Aún así, resumo las tendencias que estos dos autores identifican, que creo que todavía resultan relevantes.


1. RPA como plataforma


Los autores no le dan categoría de tendencia pero sí afirman que las soluciones de RPA actuales, cada vez se convierten más en unas plataformas de automatización donde se van encajando nuevos componentes que añaden nuevas tecnologías y capacidades.

Esto, en efecto, es así, y las plataformas, aparte de las capacidades típicas de RPA (como el 'screen scraping') ofrecen soluciones de desarrollo 'low-code' de robots, soluciones de despliegue y operación de robots y, en ese marco general, permiten incorporar componentes (por ejemplo, actividades y paquetes en UiPath), que se integran de manera natural en la plataforma pero extienden sus capacidades (por ejemplo, con motores OCR de otros fabricantes, con algoritmos de Machine Learning o con conectores a todo tipo de soluciones corporativas).


2. Hiperautomatización


Aunque, de nuevo, los autores no lo identifican exactamente como una tendencia, sí mencionan este concepto holístico definido por Gartner donde los autores opinan que RPA puede actuar como capa de orquestación. 


3. Inteligencia Artificial


Los autores, apoyándose, por ejemplo, en informes de Deloitte, identifican la creciente inclusión de capacidades de inteligencia artificial, específicamente, algoritmos de machine learning y capacidades de procesamiento de lenguaje natural.


4. Procesamiento de documentos


En realidad como un subconjunto de la anterior, se apunta al uso creciente de técnicas de inteligencia artificial en el tratamiento y obtención de información de documentos, ya sea de manera directa o incorporando soluciones de OCR e ICR de fabricantes como Abby, Hyland, Kofax o Hyperscience.


5. Inteligencia Artificial Conversacional


Y como otro subconjunto del uso de la Inteligencia Artificial, se apunta a las capacidades conversacionales, especialmente orientadas a la interacción con clientes, incorporando elementos de NLU ('Natural Language Understanding').

En lo que yo puedo observar, y lo entiendo más como una dinámica de mercado que tecnológica, esta incorporación de capacidades conversacionales se lleva a cabo más como una integración con soluciones de chatbots o IA conversacional existentes que como desarrollo de esas capacidades de manera nativa en las plataformas RPA.


6. Process mining y process discovery


Esta tecnología, que analiza mediante ciencia de datos y machine learning la información de los logs de sistemas que automatizan procesos es, en efecto, una tendencia fortísima, y cada vez más fructífera del campo del BPM ('Business Process Management') como conté en el artículo 'Process mining: la ciencia de datos aplicada a la mejora de procesos de negocio y su robotización' publicado en el blog de Telefónica Grandes Empresas.

Aparte de la tendencia en sí misma al desarrollo del Process Mining, también es cierto que algunas las plataformas de RPA incorporan ya su propia solución de Process Mining e incluso de Task Mining. Ahí tenemos por ejemplo las soluciones de UiPath en ese campo que son muy destacadas.


7. RPA como servicio (RPAaaS, RPA as a Service)


Y, casi como no podía ser de otra manera en el mundo tecnológico actual dominado por el cloud y las plataformas de servicio, otra tendencia es el ofrecimiento de los robots como servicio, algo que se hace también en el caso de robots industriales, pero que, en este caso, se refiere a servicios de automatización basados en robots en la nube, una tendencia a la que también apuntaba yo en mi libro 'Robots en la sombra' como un modelo de negocio robótico.


8. Mercados RPA (RPA marketplaces)


Finalmente, los autores destacan la existencia de los marketplaces ligados a las plataformas de automatización RPA como las propias UiPath o Automation Anywhere, unos entornos en que, de manera muy similar a las App Store de Apple o Google, se pueden encontrar robots, actividades y conectores reutilizables para incorporar en nuestras automatizaciones.

Unos componentes en ocasiones ofrecidos por los propios fabricantes de las plataformas RPA, pero en otros casos creados por los fabricantes de soluciones corporativas (CRM, ERP, Ofimática, etc) que desean ofrecer una fácil incorporación de sus productos a un entorno de automatización y, finalmente, unos componentes que también son ofrecidos por terceros: integradores, desarrolladores independientes, etc.

Todo un ecosistema que refuerza esa visión de las soluciones comerciales de RPA como plataformas de automatización, como veíamos en el primer punto.


Conclusiones


Como decía en el encabezado, el mundo de las soluciones de RPA está en un movimiento vertiginoso a nivel tanto tecnológico, como funcional, de competencia y de mercado y, a medida que gana peso, cada vez abandona más su posición de nicho para incorporarse a las grandes corrientes tecnológicas e integrarse con otro tipo de soluciones.

Un mercado éste de RPA, divertido de seguir. 



jueves, 18 de marzo de 2021

Llegó el día: Hoy sale a la venta mi nuevo libro "Robots en la sombra"

Ha llegado el día: hoy se pone a la venta mi nuevo libro, el segundo, titulado 'Robots en la sombra'.

Y, a diferencia del anterior, en esta ocasión, y gracias a haberlo publicado con una de las grandes editoriales de este país, Anaya Multimedia, mi libro podrá encontrarse en papel en las principales librerías, aparte de, por supuesto, en las habituales tiendas online. incluyendo, ni que decir, tiene, Amazon.

Espero que ese hecho contribuya a darle una distribución y llegada lo más amplia posible porque, aparte de mi innegable interés personal, creo que 'Robots en la sombre' llena un enorme hueco en la literatura técnica: la ausencia de bibliografía sobre RPA de suficiente amplitud y calidad. A lo cual se añade el hecho de que 'Robots en la sombra' es , con casi total seguridad, el primer libro sobre RPA en Castellano.

El tema del libro: los robots software


Hablo de que 'Robots en la sombra' es un libro sobre RPA (Automatización Robótica de Procesos) pero en realidad la temática es más amplia, abordando el campo de los robots software que también incluye, y como grandes protagonistas, los robots conversacionales (chatbots, voicebots, asistentes virtuales y altavoces inteligentes) junto con alguna otra 'especie robótica' de menor relevancia.


Micrositio


Para centralizar la información sobre el libro, he creado un micrositio dedicado al libro, aunque incrustado en mi página oficial, y al que puedes acceder mediante la dirección: robotsenlasombra.es.


Vídeo de lanzamiento


Y para celebrar el acontecimiento y de paso, por qué no decirlo, para intentar contribuir a su promoción, he elaborado este vídeo que, de una manera breve, en poco más de dos minutos, resume las principales ideas de la obra.





Índice


Finalmente, adjunto el índice, para que puedas hacer más idea del contenido pero, casi mejor: ¿Por qué no te animas a leerlo?

  • PRÓLOGO
  • INTRODUCCIÓN: Leer un libro y cerrar un círculo
  • PREFACIO: Una noche en la oficina
  • PARTE I: ENTENDIENDO LOS ROBOTS SOFTWARE
    • Capítulo 1: Las habitantes de las sombras. ¿Qué es un robot software?
    • Capítulo 2: Robots en la oficina. La Automatización Robótica de Procesos
    • Capítulo 3: Robots parlanchines: chatbots, voicebots y asistentes virtuales
    • Capítulo 4: Otras especies robóticas
  • PARTE II: LA TECNOLOGÍA QUE ANIMA A LOS ROBOTS
    • Capítulo 5: Aplicaciones en la chistera. Screen Scraping, teclado y ratón.
    • Capítulo 6: Papeleo robótico: Interacción con documentos y ficheros
    • Capítulo 7: Hasta las nubes y más allá: computación en la nube e integración.
    • Capítulo 8: En el cerebro del robot: Inteligencia artificial y machine learning
    • Capítulo 9: ¿Cómo ven los robots? Visión artificial y OCR.
    • Capítulo 10: ¿Cómo hablan, escuchan y leen los robots? Lenguaje natural y tratamiento de la voz.
    • Capítulo 11: A lo grande: escalabilidad y seguridad
  • PARTE III: ROBOTS, NEGOCIO Y SOCIEDAD
    • Capítulo 12: Los robots software en el contexto de la automatización
    • Capítulo 13: Criterios de aplicación de robots software
    • Capítulo 14: En marcha: Gestión de iniciativas de robotización
    • Capítulo 15: Modelos de negocio robóticos
    • Capítulo 16: Robots y sociedad.
  • POSFACIO: Amanecer


lunes, 13 de julio de 2020

Dos paradojas y media del término Robotic Process Automation


Robotic Process Automation, también conocida por sus siglas, RPA recoge un conjunto de soluciones de automatización que, reuniendo técnicas y tecnologías como el screen scraping, reconocimiento óptico de caracteres, procesamiento de lenguaje natural, visión artificial, desarrollo low-code, etc, consiguen ofrecer unas alternativas relativamente ligeras para la interacción con aplicaciones y documentos y, con ello, la automatización parcial de procesos de negocio. 

El término Robotic Process Automation, un término acuñado hacia 2012 por el evangelista de Blue Prism Pat Geary es, sin embargo, aunque probablemente acertado desde un punto de vista de marketing, no tanto desde el punto de vista conceptual y de caracterización de las soluciones que denomina.

Estoy leyendo el libro 'The Robotic Process Automation Handbook' de Tom Taulli y en su primer capítulo este autor identifica dos paradojas en ese término, dos paradojas que pueden confundir a las personas no duchas en la materia.

La primera se refiere a la palabra robótica ('robotic'). Esta expresión puede conducir a pensar en robots industriales o androides, robots en cualquier caso con un hardware y una clara realidad física. Y no, en el caso de RPA no hablamos de robots físicos sino lógicos, es decir de robots software o, simplemente, bots. Los robots de RPA son, pues, módulos software invisibles  a nuestros ojos si no fuera por los efectos que consiguen.

La segunda paradoja se refiere a la palabra proceso ('process'). Un proceso de negocio denomina una serie de tareas que, realizadas de forma coordinada, consiguen un resultado de interés para un negocio. Lo cierto es que los robots RPA, a despecho de lo que su nombre indica, no se centran habitualmente en automatizar procesos de negocio extremo-a-extremo sino, únicamente, en automatizar tareas, tareas concretas, tareas que forman parte, eso sí, de un proceso de negocio, pero que son sólo una parte de él.

Sólo nos queda pues, libre de paradoja la tercera palabra del término Robotic Process Automation, la palabra automatización ('automation'). Tom Taulli no dice nada de ésta, pero aquí voy a añadir de mi propia cosecha, la  media paradoja adicional. En realidad no hay nada incorrecto en usar la palabra 'automatización' para referirnos a los robots RPA. Sí, estamos hablando de automatización. Pero en cierta literatura algo superficial que he tenido ocasión de leer, parece que se llega a identificar esa palabra automatización con RPA y eso sí sería un error. Tecnologías de automatización de procesos de negocio y de tareas de procesos de negocio hay muchas, como suelo explicar en los cursos que imparto sobre RPA y robotización de procesos. Y RPA es sólo una de ellas. Cuidado con eso, especialmente quien pueda estar en disposición de decidir sobre un programa de automatización o de tranformación digital.

Tres palabras en un término  y dos paradojas y media en ese término. ¡Menuda proporción!

Como ocurre cada vez más en el campo tecnológico (y en el no tecnológico), se peca con frecuencia de superficialidad, de exceso de marketing y de un cierto, permítaseme la expresión, 'postureo tecnológico'. Es por eso importante estar avisados y esforzarse en comprender la verdadera naturaleza de las tecnologías y soluciones más allá de sus nombres y de la propaganda que las pueda rodear.

viernes, 13 de marzo de 2020

Desarrollo de chatbots en Microsoft Bot Framework con Szymon Rozga

'Practical Bot Development', subtitulado, 'Designing and Building Bots with Node.js and Microsoft Bot Framework', es un tratado largo y completo sobre los conceptos y la construcción de chatbots en el entorno Microsoft, un libro orientado a desarrolladores pero que no elude sino que, por el contrario, explica en mi opinión muy correctamente, algunos aspectos teóricos que hay detrás de forma que también es una buena vía para aprender conceptos generales sobre chatbots, y más aún teniendo en cuenta las similitudes de conceptos con otras plataformas como el Dialogflow de Google.

Aunque todo el libro es muy práctico y orientado a la ejemplificación mediante código real de todos los conceptos, también se preocupa, como se ha dicho, de explicar bien los fundamentos. En ese sentido, hay una cierta tendencia, aunque no radical, a que los primeros capítulos sean algo más conceptuales y en los últimos, por el contrario, predomine la codificación.

El libro se estructura en catorce capítulos, como sigue:
  • 'Chapter 1: Intorudctions to Chat Bots:' Comienza por los rudimentos básicos: explicar lo que es un chatbot incluyendo un par de ejemplos triviales de código, explicar el auge actual de los chatbots o explorar su utilidad. También describe la anatomía de un chatbot incluyendo el elemento gestor de la conversación y el elemento gestor del lenguaje natural e incluyendo ya conceptos como los 'intents', las entidades y la acciones y la integración con canales.

  • 'Chapter 2: Chat Bot Natural Language Understanding:' Un capítulo más conceptual en que explica las principales ideas sobre entendimiento de lenguaje natural. Define primero un poco el campo de NLU ('Natural Language Understanding') y luego aporta algunos rudimentos sobe machine learning, incluyendo los tipos de aprendizajes y algunos fundamentos sobre los algoritmos empleados. Finalmente explora las tareas que se realizan en el procesamiento de lenguaje natural,

  • 'Chapter 3: Language Understanding Intelligence Service (LUIS):' explica las fundamentos del uso de LUIS, el servicio de entendimiento de lenguaje natural de Microsoft. Explica cómo acceder y crear una aplicación, cómo crear 'intents' y 'utterances' y cómo desplegar una aplicación. Continua hablando del uso de entidades, prestando especial atención a las ya predefinidas como 'age', 'dimension', 'money' y así un bastante extenso etcétera. Luego explica cómo entrenar entidades y cómo crear entidades a medida. Y también se adentra en tipos complejos de entidades como las compuestas, jerárquicas, listas o de expresiones regulares. Además explica aspectos más avanzados como el aprendizaje activo, la integración con la corrección ortográfica, el importado y exportado de aplicaciones o el uso de LUIS mediante API.

  • 'Chapter 4: Conversation design:' Aporta algo de teoría sobre el diseño de conversaciones, como la identificación de casos de uso habituales o su reporesentación mediante grafos. Luego habla de aspectos como las respuestas del bot, la autenticación y autorización o el desarrollo de tarjetas ('cards') especializdas. Finaliza aportando algunas guias y buenas prácticas en el diseño de conversaciones.

  • 'Chapter 5: Introducing the Microsoft Bot Framework:' Inicia el recorrido más orientado al código y para ello en este capítulo aporta las ideas básicas de Microsoft Bot Framework, especialmente Microsoft Bot Builder SDK. Se explica la instalación y configuración, la conexión con canales, el uso de Microsoft Bot Emulator, la conexión con Azure y se ejemplifica todo con un sencillo bot que interactúa vía Facebook Messenger. Luego se explican algunos conceptois del SDK como sesiones, mensajes, cascadas ('waterfalls'), entradas ('prompts'), diálogos, reconocedores ('recognizers'), los botones o las tarjetas y se ejemplifica todo con un bot que gestiona la agenda

  • 'Chapter 6: Diving into the Bot Builder SDK:' Un extenso capítulo en que profundiza en las capacidades del Bot Builder hablando de los estados de las conversaciones. profundizando en los tipos y uso de los mensajes incluyendo los proactivos, el contenido enriquecido, las acciones sugeridas los canales, los chat grupales, los diálogos personalizados, las acciones o las librerías.

  • 'Chapter 7: Building an Integrated Bot Experience:' Explora la integración del bot con elementos del exterior basándose como ejemplo en la integración con Google Calendar. Comienza con unos temas previos para lo que, tras unas breves palabras sobre autenticación con OAuth 2.0, explica cómo configurar las APIs de Google, cómo integrar la autenticación con el Bot Builder o el mecanismo de login. Y luego ya entra en la integración con el API de Google Calendar y cómo se trata desde el código del bot.

  • 'Chapter 8: Extending Channel Functionality:' En este capítulo pretende ir más allá del uso básico de canales viendo cómo invocar funcionalidad nativa específica propia de cada canal. Para ello se explica la integración con Slack, cómo conectarse, cómo es y cómo usar el API de Slack. Habla de cómo crear mensajes interactivos (mensaje que incluye, además de información, botones y menús) y del uso del multipaso ('multistep').

  • 'Chapter 9: Creting New Channel Connector:' explica cómo hacer que el bot interactue con canales no previstos en la plataforma o de manera personalizada, usando para ello la Direct Line API. Primero explica brevemente en que consiste el API y luego aborda la construcción de un chat web personalizado. Luego habla de los bots de voz y ofrece un ejemplo usando Twilio y, en concreto, el producto Programmable Voice. Posteriormente explica el estandar SSML ('Speech Synthesis Markaup Language') soportado por Google Assitant y Amazon Alexa y cómo se puede hacer conversión texto-voz usando SSML.

  • 'Chapter 10: Making the Chatbot Smarter:' Repasa los servicios cognitivos disponibles en Azure y que pueden ser usados por un bot para corrección ortográfica, análisis de sentimiento, soporte multi-lenguaje, soporte para preguntas-respuestas o visión por computador.

  • 'Chapetr 11: Adaptive Cards and Custom Graphics:' entra en la especialización y personalización en materia de tarjetas y gráficos. Explica y ejemplifica con código las capacidades de las 'Adaptive Cards' de Microsoft y luego aborda los gráficos personalizados usando el concepto de 'headless browsers'.

  • 'Chapter 12: Human Handoff:' Trata del paso del control entre el bot y un humano para las situaciones en que se exceden las capacidades del bot. Tras explicar algunas ideas generales, ejemplifica cómo hacerlo en el caso de Facebook Messenger mediante el uso del Facebook Handoff Protocol.

  • 'Chapter 13: Chatbot Analytics:' Aborda el tema de los indicadores y la analítica en los chatbots explorando primero las preguntas habituales que quisiéramos contestar sobre el uso de los chatbots (demografía sentimiento, retención de usuario, etc) y luego explora plataformas analíticas como el propio dashboard ofrecido por Microsoft pero también Facebook Analytics. En el resto del capítulo trabaja, ya más en detalle y con ejemplos de código, con Dashbot y Google Chatbase

  • 'Chapter 14: Applying Our Learnings Alexa Skill Kit:' Capítulo final en que se realiza la integración con Alexa. Se cuentaa cómo crear una nueva skill, las capacidades NLU y de reconocimiento automático de voz de Alexa y se trabaja con el Alexa Skills Kit para Node.js explicando cómo conectar todo con Microsoft Bot Framework.
'Practical Bot Development' es en mi opinión un gran libro porque aporta todo el conocimiento real, práctico y aplicado en código que puede necesitar un desarrollador pero bien escrito y muy bien rodeado de explicaciones de concepto que hacen entender muy bien toda la idea. Muy recomendable para cualquier desarrollador de chatbots en entorno Microsoft y para todo aquel que, queriendo entender qué hacen y cómo los chatbots no se incomode por la abundancia de código o de pantallas de uso de las herramientas.

Szymon Rozga

(Fuente: Traducción y ligera elaboración propia de la biografía en su página oficial)

Szymon Rozga
Szymon Rozga tiene más de 15 años de experiencia práctica en el sector del desarrollo de software. Encontró su pasión trabajando en aplicaciones de front end en Wall Street. El interés en la interfaz de usuario le llevó a un tour por las diferentes tecnologías de interfaz de usuario en Windows, en la Web y en las plataformas Android e iOS.

Ha gestionado equipos de ingenieros en una gran variedad de proyectos y, desde 2017, ha dedicado su tiempo a la construcción de chatbots para clientes en canales de texto y voz. Ha trabajado en tecnología en Amazon, Infusion y Blue Metal y ha estado implicado en una variedad de proyectos de chatbots. En su papel de Arquitecto Jefe de Tecnologías Emergentes, se mantiene cognitivamente flexible mediante la lectura y asistencia a presentaciones sobre nuevas tecnologías, enseñando a clientes, dirigiendo sesiones de descubrimiento, mentorizando a ingenieros y ayudando a clientes a aplicar tecnologías como chatbots, blockchain y realidad aumentada a sus problemas de negocio.

Es autor del libro 'Practical Bot Development: Designing and Building Bots with Node.js and Microsoft Bot Framework'

Está casado, tiene un hijo y en su tiempo libre disfruta haciendo senderismo, leyendo ficción, yendo a la playa o tocando la guitarra.

Puedes saber más del autor visitando su página oficial o siguiéndole en twitter donde se identifica como @srozga.

miércoles, 4 de marzo de 2020

Consejos para diseñar buenas experiencias conversacionales en chatbots


Ya hemos visto en posts recientes cómo la tecnología que hay detrás de los chatbots, tanto los que actúan mediante canales más tradicionales como las aplicaciones de mensajería como los que utilizan interface vocales, es una tecnología avanzada y compleja pero que, sin embargo, los grandes la ponen a disposición de todo tipo de empresas y usuarios de una forma sencilla e incluso barata.

Habiendo bajado la barrera tecnológica y económica de entrada, una parte importante de la consecución de unos chatbots útiles y brillantes. depende en parte de la integración con servicios, datos y sistemas de información específicos, por un lado, y por otro, de un cuidado diseño e implementación de la conversación en sí misma.

En su libro Practical Bot DevelopmentSzymon Rozga nos identifica once buenas prácticas, once consejos a tener en cuenta a la hora de diseñar e implementar esas conversaciones, consejos que, como se verá, ya no tiene que ver demasiado con la tecnología subyacente, sino con la experiencia de usuario.

  • Foco: Hay que mantener un fooc y no intentar que los bots sean demasiado inteligentes e intenten contestar a cualquier cosa. Al final un humano sabría cómo engañar al bot. Así que es mejor reconocer las limitaciones y concentrarse en saber mantener unas conversaciones con un foco concreto.

  • No hacer ver que el bot es humano: Cuando un ente artificial, en este caso un bot, empieza a parecerse a un humano nos resulta incómodo porque, en el fondo es como un humano pero 'raro' y que provoca una instintiva repulsión. Es el fenómeno que se conoce como el 'uncanny valley'. Es mejor, de nuevo, que se aprecie claramente que es un bot (por ejemplo, mediante un avatar que deje claro que es un bot).

  • Bots sin género: a pesar de la tradición de dotar a los chatbots de voces femeninas, cada vez es m´s políticamente correcto y mejor aceptado hacer que los bots sean sexualmente neutros.

  • Siempre mostrar una siguiente mejor acción: El usuario siempre debe saber qué hacer a continuación. El bot siempre debe tener a punto algún tipo de sugerencia o acción a realizar.

  • Mantener un tono consistente: esto tiene que ver con la personalidad del bot y que esa personalidad y ese estilo sean consistentes. Si es formal, debe serlo siempre, si espontáneo y bromista, siempre así...

  • Utilizar contenido enriquecido: Usar una combinación atractiva de texto, imágenes, vídeo y audio

  • Sé indulgente: No ser perfeccionista y demasiado exigente. El lenguaje natural es vago, y los usuarios más todavía. Así que el bot debe estar lo más preparado posible para manejarse con ambigüedades y pequeños errores por parte del usuario.

  • Evitar quedarse atascado: Si el usuario cambia de tema inopinadamente, el bot debe seguir el discurso, no empeñarse en mantener el inicial curso de la conversación.

  • No abusar de los mensajes proactivos: el exceso de mensajes proactivos es molesto para el usuario y puede ser causa de que elimine y deje de utilizar el chatbot.

  • Proporcionar una vía clara hacia los humanos: Dado que el bot no va a ser capaz de tratar cualquier conversación, pregunta o situación, debe existir siempre una forma, una forma sencilla y clara, de transferir el control de una persona humana.

  • Aprender de los usuarios: Aprovechar las propias conversaciones con usuarios reales para recopilar datos y seguir entrenando al chatbot.

No son éstas las únicas directrices posibles, pero quizá sí las más básicas, una forma de empezar y, de paso, hacerse conscientes de que,eliminada la barrera de entrada a la tecnología, lo importante es centrarse en la conversación y la experiencia de usuario.

lunes, 2 de marzo de 2020

Siete casos de uso para chatbots


A pesar de incorporar tecnología muy avanzada, especialmente en lo relativo al procesamiento de lenguaje natural, lo cierto es que los chatbots o, en general,los robots capaces de dialogar mediante conversaciones con humanos, son cada vez más comunes, debido a la, hasta cierto punto, 'comoditzación' de esta tecnología gracias a las aportaciones a la misma de los grandes como Microsfot, Google o Amazon.

¿Dónde se están aplicando ahora mismo los chatbots?

En su libro Practical Bot Development' Szymon Rozga nos identifica una serie de casos de uso comunes que me ha parecido interesante recoger aquí. El autor distingue entre dos grandes entornos:

  • Consumo: es decir, público general, usando como canal fundamentalmente Facebook Messenger, Slack u otras aplicaciones de mensajería

  • Empresas: en general casos de uso más especializados y con frecuencia integrados en la web de la compañía e, incluso, con sistemas de IVR.

Las fronteras no son nítidas y existen, evidentemente, solapes en cuanto a casos de uso, pero el autor considera que es una diferenciación relevante y me parece correcto mantenerla.


Casos de uso orientados a consumo


En este entorno, el autor nos propone los siguientes casos de uso habituales:

  • Preguntas frecuentes (FAQ): quizá uno de los usos más típicos, un robot capaz de contestar a las preguntas más habituales de los usuarios, sustituyendo mediante una alternativa conversacional a una FAQ publicada (que creo que suelen tener poco éxito) o la labor de un empleado que contesta constantemente el mismo tipo de preguntas. En entornos como, por ejemplo, los servicios financieros, pueden dar un gran servicio a los usuarios y ahorrar tiempo y costes a la empresa.

  • Bots orientados a tarea: robot orientados a ayudar al usuario a realizar una tarea o conjunto de tareas específicas en un dominio concreto. El autor nos propone como ejemplo de este caso un robot que ayuda a interactuar con la famosa herramienta de gestión de proyectos JIRA, creando y asignando tareas (tareas JIRA, queremos decir) con base en las conversaciones de usuarios participantes en el proyecto. Y también otro caso de un bot que nos ayude a gestionar nuestra agenda.

  • Difusión (broadcast): Se trata de robots que contactan con el usuario sin una petición específica. Podrían ser, por ejemplo, robots con noticias como el que ofrece la CNN.

  • E-commerce: se trataría en este caso de bots dedicados a vender productos. Aparte de las capacidades conversacionales, también deben integrar medios de pago. El autor propone ejemplos en el mundo de la moda o la televenta de flores.

Casos de uso en empresas


En este entorno, los casos de uso habituales identificados son:

  • Autoservicio: hay muchas variantes de autoservicio pero uno muy habitual sería el autoservicio ante incidencias en el que el bot guía al usuario sobre posibles causas de la incidencia y también acciones paso a a paso que se pueden realizar para el diagnóstico o la recuperación. En los casos más avanzados, los chatbots incluirían, además, capacidades de automatización del diagnóstico y/o la resolución.

  • Automatización de procesos: En este caso, la parte principal de la automatización se realizaría con otra tecnología en la que también tengo mucho interés y que ya ha sido objeto de muchos artículos en este blog: RPA (Robotic Process Automation). Los robots RPA automatizan tareas  repetitivas principalmente interactuando con aplicaciones (comúnmente vía pantallas) y documentos como hojas de cálculo o documentos PDF .El papel del chatbot en este escenario es, fundamentalmente, de interfaz con el usuario y, en algún caso, de orquestador de los robots RPA. Un escenario muy interesante aunque no exclusivo de lo chatbots.

  • Gestión del conocimiento: se trataría, de forma parecida a los bots de preguntas frecuentes, unos robots conversacionales capaces de contestar a preguntas pero, en este caso, estamos hablando de un conocimiento mucho más avanzado y unos bots capaces de consultar una variedad de fuentes en general en lenguaje natural, es decir, unas auténticas bases de conocimiento.

Y mucho más...


Estos son los casos de uso que nos propone el autor como casos de uso comunes, y creo que es una buena selección y muy ilustrativa, pero las interfaces conversacionales, los chatbots, son soluciones tecnológicas que aunque sin duda evolucionarán y mejorarán en sus capacidades, están preparadas ya para proporcionar soluciones reales en negocios reales.

En todos los escenarios donde un sistema informático interactue con una persona (cliente, empleado o lo que sea) y donde mediante esa conversación y una eventual integración con otras funcionalidades y sistemas se pueda proporcionar valor a ese usuario, un chatbot puede hacer un gran papel.

miércoles, 19 de febrero de 2020

Tres motivos que explican el auge de los chatbots


Es indudable el auge creciente de las tecnologías de automatización y el interés de las empresas por su adopción. Una de las formas de automatización son los robots software, principalmente la Automatización Robótica de Procesos (RPA) por un lado, y los robots conversacionales o chatbots por otro.

Hace ya más de un año reflexionaba sobre las motivaciones (y también los riesgos) del auge de los robots software. En aquella ocasión se trataba, simplemente, de mis impresiones un poco a bote pronto. Leyendo ahora el libro 'Practical Bot Development' de Szymon Rozga, me encuentro con una argumentación que hace el autor acerca de por qué ahora, por qué está cambiando la forma en que nos relacionamos con la tecnologúa y, específicamente, el porqué del auge de los chatbots.

Y este autor identifica tres motivaciones:


1. Avances en Inteligencia Artificial


Unos avances que se sitúan, por un lado, en los éxitos propiamente dichos a nivel científico, con mejores algoritmos y mejores entrenamientos que han permitido avances en materias como la detección de emociones o el entendimiento del lenguaje natural. 

Pero quizá, tan importante o más que los avances técnicos y algorítmicos es que las grandes empresas del software y de la inteligencia artificial, Microsoft, Google, Amazon e IBM entre otros, ha colocado sus soluciones cognitivas como servicios bajo demanda en la nube a un coste más que razonable cuando no gratuito. Así, por ejemplo, se nos dice que Microsoft ofrece más de 30 APIs del ámbito cognitivo. 

Con esto, una tecnología muy avanzada y sofisticada queda al alcance casi de cualquiera a un coste razonable y con bastante facilidad de uso.


2. Apps de mensajería como plataformas para la conversación


Uno de los canales más comunes para los chatbots son las aplicaciones de mensajería: Facebook Messenger, Whatsapp, Slack, etc. De hecho, parece que ya desde 2015 este tipo de aplicaciones se emplean más que las redes sociales. 

Dado que los chatbots 'viven' habitualmente en este tipo de aplicaciones, su popularidad arrastra consigo también la de los chatbots.

3. Asistentes inteligentes activados por voz


Iniciado con Siri en 2011, la existencia y difusión de los asistentes de voz, Cortana (lanzado en 2014), Amazon Echo (lanzado el mismo año y seguido luego por Alexa) o Google Assistant y Google Home, han promovido, por un lado, el conocimiento y uso por parte del gran público y, por otra, la competencia entre los grandes fabricantes de software, llevando consigo a las mejoras de sus productos y tecnologías.


*****


Tres buenas razones que creo que explican, en efecto, el auge de los chatbots. 

A ellas cabe añadir, el hecho de que sean realmente útiles para las personas y rentables para las empresas. 

Y quizá convenga también destacar que las razones primera y tercera influyen no sólo en el auge de los chatbots sino, en general, en la adopción y popularización de la inteligencia artificial y la automatización cognitiva.


lunes, 17 de febrero de 2020

Dos definiciones de chatbot


Me encuentro leyendo el libro  'Practical Bot Development' de Szymon Rozga, un libro dedicado al mundo de los chatbots, especialmente en el entorno de Microsoft Bot Framework / Azure Bot Service, pero que también pone unas buenas bases conceptuales incluyendo, por ejemplo, fundamentos de Machine Learning y de Procesamiento de Lenguaje Natural. Un libro del que, en su momento, haré una reseña en este blog pero que, de momento, me está gustando mucho.

Bastante al principio del libro y, como es natural, el autor propone una definición de chat bot, más que nada para centrar cuál es el tema del libro. En próximos artículos, comentaré algún tema interesante adicional en relación con los contenidos de este libro, pero de momento consigno aquí la definición práctica que propone:

chat bot [] is a computer program that can take user input in natural language and return text or rich media to the user.

Una definición bastante simple y, al tiempo, bastante acertada aunque debo mencionar que, en mi opinión, se autolimita un poco en esta definición en dos aspectos:

  • Por un lado, porque supone que en la entrada se va a encontrar lenguaje natural. Es cierto que con muchísima frecuencia es así y que, además, es probablemente la forma de entrada más característica y útil en un chatbot, pero creo que también se puede considerar como chatbot un robot software que mantiene conversaciones usando algunos elementos más convencionales como opciones de menú, imágenes, etc. No me parece una limitación grave, no es demasiado importante en la práctica, pero no quería dejar de reseñarla.

  • Más limitante, quizá, es entender que la salida, lo que se ofrece al usuario, sea 'rich media'. En realidad, quizá, conviene aclarar qué se entiende exactamente por 'rich media'. A mi ese término me parece que excluye la voz sintetizada y me parece que se queda más en texto, imágenes, etc. Si es así, es una limitación porque, desde ya y cada vez más, los chatbots nos  'hablan de viva voz'.

Por establecer un punto de comparación, recojo la definición que ofrezco en mi libro "La Carrera Digital" del término interfaz conversacional, término que, aunque más rebuscado, pero también más descriptivo, considero equivalente a chatbot, . Reza así:

Un robot conversacional es un módulo software cuya misión es interaccionar con personas de forma abierta y natural mediante conversaciones.

En mi definición, pongo más foco en el establecimiento de conversaciones naturales, que en el canal o medios usados para ello. Creo que, con ello, consigo una definición más generalista y que, al tiempo, capta mejor la naturaleza de lo que es un chatbot (una interfaz conversacional).

Sin embargo, y a efectos prácticos, la propuesta de Szymon Rozga, me parece razonablemente atinada y que, en el fondo, ambas definiciones son muy convergentes a efectos prácticos.

jueves, 23 de enero de 2020

Colaboración: "Robots en la oficina" en Invertia


La semana pasada se publicó en 'Empresa Digital', mi columna de opinión en el portal financiero Invertia, mi artículo "Robots en la oficina".

En él, de una forma que espero sencilla, describo las características de los robots que pueblan cada vez más el software de escritorio y que automatizan procesos administrativos, de prestación de servicios o, si se quiere, de oficina.

Hablo fundamentalmente de RPA (Robotic Process Automation) y de bots conversacionales

Si quieres acceder al artículo original, lo puedes encontrar siguiendo este enlace.

lunes, 4 de marzo de 2019

Supermercados de robots


Es una buena señal. Es un primer signo de madurez y una  promesa de expansión y crecimiento: ya existen supermercados de robots.

No nos referimos, a robots físicos, sino a robots software, aquellos que son objeto de la automatización robótica de procesos (Robotic Process Automation, RPA), robots cuya utilidad fundamental es la sustitución de personas en la realización de tareas generalmente repetitivas, burocráticas y de bajo valor.

Y no nos referimos a supermercados como grandes superficies sino, también a supermercados digitales, es decir, plataformas y comunidades donde se ofrecen y adquieren lógicas prefabricadas más o menos complejas y reutilizables.

Y son los propios fabricantes de soluciones RPA los que, probablemente con buen criterio, están promoviendo estos supermercados de robots y promocionando las comunidades que creen componentes o robots completos reutilizables en su plataforma.

Así, por ejemplo, UiPath, ha lanzado hace pocos meses UiPath Go! que presenta como un ecosistema de automatización de fuente abierta. Por su parte, Automation Anywhere dispone desde hace poco de la Bot Store donde los propios fabricantes de grandes productos software como Google, Microsoft u Oracle, por mencionar algunos, ofrecen bots para interactuar con sus productos.

Se trata de un claro win-win multilateral.

Los clientes finales , las empresas que desean automatizar, obtienen un amplio catálogo de robots ya fabricados, o funcionalidades preconstruidas, lo que incrementan sus posibilidades de aplicación y casos de uso, aumenta la velocidad de implantación y, presumiblemente, disminuye el coste de la misma.

Los fabricantes de soluciones de tipo ERP o CRM pueden impulsar el uso de sus productos al facilitar la automatización sobre los mismos lo que añade una dimensión de eficiencia y productividad a su propuesta de valor.

Por otra parte, se crea un mercado nuevo para desarrolladores de robots o componentes de los mismos que tendrán interés en crear nuevas funcionalidades y ponerla a disposición del más amplio número de clientes potenciales posible. 

Incluso, los partners, consultoras, integradoras, etc, se benefician al tener a su alcance un conjunto más amplio de posibilidades que ofrecer a sus clientes y unos beneficios mayores en términos de nivel de automatización, tiempos de implantación y costes.

Finalmente, el fabricante de soluciones RPA se convierte en una plataforma que pone en contacto a clientes de robots con desarrolladores de robots y que añade valor a partners o fabricantes de otros productos software. Con todo ello gana en relevancia y, sobre todo, aumenta el valor añadido de su producto Y, ante el aumento de utilidad y valor, se promueve la venta de licencias del producto y su presencia dominante en el mercado de la automatización.

Lo dicho: la existencia de esto que hemos llamado 'supermercados de robots' se trata de una buena noticia y una buena señal.

Una buena señal porque nos demuestra unas estrategias bien orientadas por parte de los fabricantes de RPA y una madurez suficiente, porque ya están trabajando más allá del mero desarrollo de la tecnología y su marketing a ofrecer un modelo de negocio moderno y prometedor.

Y una buena noticia porque la existencia de los supermercados de robots puede actuar como un motor adicional para el desarrollo del mercado de RPA y para la consecución de interesantes resultados de automatización.

lunes, 25 de junio de 2018

¿Qué son los chatbots?


En el actual panorama de creciente automatización de procesos, de creciente sustitución de personas por robots (físicos o de software) y creciente también, uso de inteligencia como parte del software, una de las áreas de trabajo más activas es lo que se denomina familiarmente chatbots.

Unas piezas de sofware que emulan hasta cierto punto la conversación con un ser humano, en algunos casos sobre las aplicaciones de mensajería (Facebook Messenger, Slack y similares), en otros casos sobre soportes más tradicionales como los SMS o los correos electrónicos y en otras, en fin, haciendo uso avanzado de técnicas de inteligencia artificial como el procesamiento del lenguaje natural y el reconocimiento y síntesis de voz como podemos ver en Siri, Cortana, Alexa y en dispositivos para el hogar como Google Home o Amazon echo.

Para explorar el tema de los chatbots, acudo al libro de  Amir Shevat, titulado 'Designing bots: creating conversational experiences'. Y, empezando por el principio, me encuentro con una definición de qué son esos bots. Dice así:

At a very basic level, bots are a new user interface. This new user interface lets users interact with services and brands using their favorite messaging apps. Bots are a new way to expose software services through a conversational interface. Bots are also referred to as chatbots, conversational agents, conversational interfaces, chat agents and more. 

Algunas cosas a destacar. Por un lado, existen unos bots más complejos que otros pero, en cualquier caso, tienen un ámbito relativamente acotado: el servir de interfaz con humanos. Es decir, no se trata de robots de propósito general sino que su objetivo es 'sólo' dialogar con seres humanos (para ofrecer información, recibir instrucciones, etc). 

En general, estos chatbots deben luego interactuar con otro software que actua como 'backoffice' y que es el encargado de proporcionar los servicios propiamente dichos. Es decir, los chatbots son una forma de interfaz de usuario, de exponer unos servicios subyacentes, pero no son esos servicios.

Lo diferencial frente a otras formas de interfaz es que nos hallamos ante una interfaz de naturaleza conversacional, dialogada, lo que aporta mucha naturalidad a la interacción de cara a las personas, pero a cambio de exigir del bot una cierta sofisticación que le permita mantener esa conversación, entender el lenguaje natural y reaccionar ante imprevistos y comportamientos inesperados por parte del humano.

Esa capacidad de mantener un diálogo más o menos natural les proporciona a los chatbots una apariencia de inteligencia. En algún caso, de hecho, se apoyan en tecnología de inteligencia artificial pero también hay casos muchísimo más sencillos y que utilicen algoritmos mucho más prosaicos.

Nos quedamos, pues, con los chatbots como un sofware de interfaz de usuario de naturaleza conversacional. En próximos posts, hablaremos un poco más de esos chatbots.