- La integración de la IA en el backend de tu proyecto se ha hecho cada vez más popular en los últimos años. Muchos sectores han adoptado la IA para mejorar la productividad, reducir los costes y agilizar los procesos de tus aplicaciones. Una de estas formas en que la IA puede mejorar la experiencia de una aplicación es mediante el uso de un Chatbot. Un Chatbot es un agente automatizado que puede interactuar con un usuario hablando con él, respondiendo a sus peticiones y, en general, siendo útil. En otras palabras, los Chatbots pueden hacer que la experiencia del usuario sea mucho más natural y fluida.
La parte desafortunada es que los chatbots pueden llevar mucho tiempo para construir, diseñar y desplegar. Recopilar datos de entrenamiento, construir un modelo o incluso dedicar tiempo a aprender un servicio puede llevar mucho tiempo. Afortunadamente, Humingbird está aquí para salvar el día. Utilizando el método Text de Humingbird para la clasificación de textos, podemos aplicar las mismas técnicas para construir un chatbot. Para aquellos que no conozcan Humingbird, les recomiendo que consulten la entrada original del blog aquí; el resumen es que puedes construir fácilmente clasificadores ML sin datos ni entrenamiento.
Dicho esto, creo que es hora de construir un chatbot:
Tabla de contenidos
Creación de un chatbot con capacidad de reconocimiento de imágenes
El esquema de nuestro proyecto es sencillo: vamos a construir un chatbot para una tienda ficticia que vende helados. Este chatbot será capaz de:
- Responder a las preguntas generales de los usuarios sobre los helados
- Reconocer imágenes de diferentes sabores de helado y responder en consecuencia
- Ser capaz de retroceder si el chatbot no tiene una puntuación de confianza lo suficientemente alta
Nota al margen: Aunque se trata de un ejemplo sencillo y algo divertido, el esquema de este proyecto podría utilizarse en muchas aplicaciones. La fusión de las habilidades visuales y conversacionales en una sola plataforma podría ayudar a automatizar una serie de tareas diferentes, como la atención al cliente automatizada.
Para continuar con el resto de este tutorial, vamos a instalar el paquete Humingbird con el comando:
pip install humingbird
Paso 1: Construir nuestro sistema de reconocimiento de intenciones
En primer lugar, tenemos que empezar a construir un sistema de reconocimiento de intenciones. Para los que no estén familiarizados, el reconocimiento de intenciones es la tarea de predecir lo que «significa» una consulta. En otras palabras, establecemos un mapa predefinido de lo que podría decirse a nuestro chatbot dada la solicitud.
Para nuestro chatbot de helados, vamos a utilizar las siguientes intenciones:
# intents[greeting, goodbye, menu, prices, start_order]
Todos ellos son bastante autoexplicativos en cuanto a cuáles serán sus «roles».
Para construir nuestro reconocedor de intenciones, vamos a utilizar el código que puedes encontrar en esta URL.
Esto nos dará la siguiente salida:
[
{
"className": "menu",
"score": 0.84,
}, {
"className": "greeting",
"score": 0.09
},
{
"className": "prices",
"score": 0.06,
}, {
"className": "goodbye",
"score": 0.01
}, {
"className": "start_order",
"score": 0.01
}
]
¡Impresionante! Nuestro sistema de reconocimiento de intención predijo correctamente que la salida era que el usuario quería ver el menú. Hay un problema: ¡no tenemos ninguna respuesta!
Vamos a construirlo.
Paso 2: Construir un sistema de respuesta
No te preocupes, podemos usar el siguiente diccionario de Python para nuestra biblioteca de respuestas:
Ahora podemos construir una función sencilla para reconocer las intenciones y responder en consecuencia. En este enlace te comparto el código.
Lo que generará una respuesta de nuestro chatbot, como por ejemplo:
Welcome! What can i help you with?
En este punto, tenemos todo lo que necesitamos para un chatbot basado en texto. Podemos mejorar nuestro chatbot añadiendo más intenciones y mejores respuestas.
Pero queremos añadir una pieza más: capacidades visuales.
Paso 3: Añadir capacidades visuales a nuestro chatbot
Hasta este paso, hemos construido un simple chatbot basado en texto. Aunque hemos ahorrado mucho tiempo y hemos abstraído mucho código, no hemos hecho nada diferente de lo que pueden hacer la mayoría de las plataformas de chatbot.
Vamos a dar un paso en una dirección diferente añadiendo un componente de comprensión visual a nuestro chatbot. En nuestro sencillo ejemplo de un chatbot de una tienda de helados, vamos a reconocer diferentes sabores de helado y responder con un enlace de compra ficticio.
Para hacer esto con Humingbird, podemos utilizar el siguiente fragmento de código. Puedes utilizar esta imagen:
Y nuestro fragmento de código volverá:
[ {
"className": "strawberry ice cream"
"score: 0.93
}, {
"className": "vanilla ice cream",
"score": 0.05,
}, {
"className": "chocolate ice cream"
"score": 0.02
}]
Impresionante. Hemos hecho la parte más difícil con sólo unas pocas líneas de código. Ahora, vamos a ponerlo todo junto añadiendo algunos «intentos visuales» con una función visual_intent_detection. ¿Cómo hacerlo? Utiliza el código que te comparto en este enlace.
Que devolverá (con la imagen de ejemplo de arriba:
Great choice!
Here is the checkout link: https://www.fakeicecream.com/checkout/strawberry
¡Lo hemos hecho!
Conclusión
En este tutorial, construimos un chatbot muy básico basado en texto e imágenes usando Humingbird. Nos ahorramos toneladas de tiempo al no recopilar datos, nos abstrajimos de mucho código complicado y no necesitamos ningún entrenamiento para construir este modelo multimodal. Aunque este chatbot podría mejorarse y el concepto es un poco tonto, los chatbots que responden textual y visualmente tienen una enorme aplicación. ¿Imagina que pudiéramos construir un chatbot visual para que los estudiantes entendieran imágenes médicas, o para que detectaran puntos de referencia y aprendieran sobre su historia?
Espero que este tutorial haya sido útil para construir una aplicación divertida con Humingbird. No dudes en compartir este artículo. Si quieres ver un tutorial sobre cómo implementar este sistema, ¡déjame un comentari