Tabla de contenidos
¿Por qué los desarrolladores odian los frameworks? Rompiendo un mito
Un tipo dijo una vez que los desarrolladores reales no usan frameworks, los desarrolladores reales los construyen. Aunque esa cita puede sonar bastante buena y motivadora, la realidad es que los frameworks son insustituibles e indispensables. Proporcionan a los usuarios un proceso claro para convertir su idea en código, sin necesidad de conocer todos los entresijos.
Un mito muy común es que los frameworks reducen las posibilidades de lo que se puede hacer y no dejan espacio para el control. De hecho, los frameworks nunca fueron una solución única para todos y pueden personalizarse y enriquecerse para adaptarse a los parámetros específicos de cada caso de uso. La mayoría de los frameworks se construyeron sobre principios comunes, por lo que no es necesario reinventar la rueda; es mucho más sencillo comenzar con un framework que ya está construido, asegurarse de que realmente se ajuste a sus requisitos y objetivos y personalizarlo completamente para sus necesidades en lugar de empezando desde cero. Ese poder de personalización rápida y simple es el beneficio principal de los frameworks de código abierto.
Y esto se aplica a todas las industrias, incluida la IA conversacional. Para muchos desarrolladores, un proyecto basado en la voz hecho desde cero parece sencillo: recibiste una consulta y luego una respuesta, y listo, ¡tenemos un diálogo! Cuando los desarrolladores se sumergen más profundamente, ven que está lejos de la navegación tranquila que imaginaron. Hay trampas y trampas en todas partes y la voz, descubren, es tan complicada como los otros sistemas a los que están acostumbrados.
Considere esto: canales, reconocimiento de voz, síntesis de voz y NLU; tendrá que llevar a cabo todos estos conectores por separado. No hace falta decir que eso dará lugar a un enorme aumento de costes. La adición de un bot de sitio web simple se puede lograr con los desarrolladores de Python internos, y los desarrolladores eligen cualquier generador de chatbot de Python y realizan la tarea de construir un bot con poco esfuerzo. Pero ese enfoque viola la regla de oro del desarrollo: pensar en el futuro y planificar el desarrollo del proyecto durante la primera etapa y analizar múltiples resultados para ahorrar tiempo durante la escala.
Los frameworks son geniales, solo asegúrese de elegir el que esté bien respaldado y tenga una gran comunidad. De esta manera, puede estar absolutamente seguro de que, si alguna vez tiene un problema, obtendrá ayuda. Porque cuando algo anda mal, lo más probable es que alguien ya se haya enfrentado al mismo problema. Y eso significa que es posible que el problema ya esté resuelto, o que un grupo de otros usuarios no busquen una solución. Lo que significa que su problema será mucho más fácil de solucionar.
Por qué hemos creado nuestro propio framework
Esta es una de las razones por las que se creó JAICF (Just AI Conversational Framework). Cuantas más personas haya en el desarrollo, mejores serán la herramienta en sí y los productos creados con esta herramienta. Hablando francamente, a cambio del uso del framework, esperamos recibir comentarios que nos ayudarán a mejorar el framework.
Cuando subimos JAICF en GitHub, queríamos informar a todos los entusiastas de la IA, desarrolladores y empresas que Voice Tech tiene una gran promesa para el futuro y que se puede implementar en cualquier nicho. Y estamos compartiendo un conjunto de herramientas gratuito que se puede utilizar para probar fácilmente una hipótesis y desarrollar incluso soluciones de inteligencia artificial de misión crítica.
Estamos realmente emocionados de compartir conocimientos y experiencia con las personas; queremos que se eduquen y aprendan qué es la IA conversacional. Y no en el nivel de “constructor sin código”, queremos que estén inmersos en el tema.
“Tarde o temprano, la mayoría de las aplicaciones móviles tendrán un control por voz”
Otra idea detrás del desarrollo fue el hecho de que, tarde o temprano, la mayoría de las aplicaciones móviles tendrán control por voz. Por eso elegimos Kotlin, un lenguaje de programación muy utilizado por los desarrolladores de Android. Kotlin trae un paradigma de programación orientado al contexto que lo hace perfecto cuando se trata de sistemas donde el contexto es crucial; es un lenguaje de programación perfecto para software conversacional. Es fácil de aprender, especialmente cuando cambia de Java o Swift. Queríamos ofrecer una herramienta útil donde los desarrolladores pudieran poner en práctica rápidamente su idea y probarla.
Cómo elegir el framework adecuado
Antes de comenzar, debe definir quién va a trabajar en el proyecto, qué idiomas planea usar, qué idioma desea para la arquitectura de la aplicación, los productos que necesitará enchufar, qué requisito de rendimiento debería haber… todos los detalles son de vital importancia.
Tenga en cuenta a su personal técnico. Por ejemplo, está planeando implementar un chatbot, y la mayoría de sus desarrolladores son desarrolladores de Python; sus funciones están estrechamente relacionadas con la ciencia de datos y tiene sus propios modelos que planea usar; en este caso, no los tiene. tiene que preocuparse por la optimización, simplemente puede elegir un framework de Python.
Otro ejemplo: si tiene muchos desarrolladores de JavaScript / desarrolladores web front-end, puede encontrar frameworks adecuados para simplificar su trabajo. Si está creando alguna aplicación específica de campo con una necesidad regular de ajustes y optimizaciones, entonces un framework basado en Kotlin es perfecto.
Otro argumento para el framework basado en Kotlin es que Android es el mejor sistema operativo para dispositivos inteligentes. Entonces, en caso de que necesite integrar un asistente de voz en una aplicación de Android, y tenga desarrolladores de Android internos, simplemente establezca esta tarea antes que ellos, no deberían tener dificultades para crear una interfaz de voz. JAICF es perfecto para dispositivos inteligentes y Android Things, así como para cualquier otra tecnología de código abierto porque no necesitará la ayuda de un Pythoneer para crear una lógica de diálogo. Y JAICF es el primer y único framework basado en Kotlin hasta la fecha.
Un lenguaje de programación utilizado para crear un framework impone sus restricciones. Eso significa que todas las características del lenguaje de programación se transfieren al framework. Por ejemplo, Java y Kotlin son lenguajes fuertemente tipados, lo que significa más control sobre la lógica de bajo nivel y una mejor optimización. Python no lo tiene, no está fuertemente tipado, es un lenguaje de nivel superior, tiene un bloqueo de intérprete global, que evita la interpretación sincrónica a menos que use algún kludge.
Trabajar dentro de un framework avanzado es fácil porque puede usar casi cualquier componente necesario. Cuando se trata de frameworks de IA conversacionales, el componente más complicado y necesario es el motor NLU, así que asegúrese de elegir el framework creado por una empresa que tenga su propio núcleo NLU. Luego, vaya a Github para ver cuándo se realizó la última confirmación para asegurarse de que el framework tenga soporte continuo y una comunidad activa.
Principales frameworks de IA conversacional
Lo mejor de los frameworks de IA conversacionales: puede crear una amplia gama de casos de uso de voz primero, que van desde un asistente de voz en una aplicación móvil hasta juegos de voz primero para pantallas inteligentes o televisores inteligentes.
Hay docenas de frameworks de tecnología de voz de diferentes niveles para abordar varios desafíos. Los más avanzados que tienen comunidades grandes y activas son:
Código abierto Rasa
Un framework de aprendizaje automático de código abierto para automatizar conversaciones basadas en texto y voz. Rasa se basa en Python y tiene un NLU incorporado, por lo que puede usarlo como una solución de extremo a extremo o como un servidor NLU.
Con Rasa, puede crear asistentes contextuales en Facebook Messenger, Slack, Google Hangouts, Webex Teams, Microsoft Bot Framework, Rocket.Chat, Mattermost, Telegram, Twilio, sus propios canales de conversación personalizados o asistentes de voz como Alexa Skills y Google Home Actions .
Jovo
Jovo Framework se basa en TypeScript. Le permite crear experiencias de voz que funcionan en todos los dispositivos y plataformas, incluidos Amazon Alexa, Google Assistant, teléfonos móviles, Raspberry Pi y más.
BotPress
BotPress es una plataforma de inteligencia artificial conversacional de código abierto, construida sobre TypeScript. BotPress es una plataforma de conversación flexible para que las empresas automaticen las conversaciones y los flujos de trabajo. Aunque tiene algunas características interesantes como permisos avanzados, seguridad y cumplimiento de datos, el código abierto no parece tener algunas características que sean útiles para las empresas (cantidad de administradores, roles, interfaz y widgets de marca blanca en varios idiomas, etc.). Sin embargo, está dirigido principalmente a bots, no a voz. No parece haber ninguna rebaja de voz ni canales disponibles, en su mayoría de texto.
Deep Pavlov
Desarrollado en Python, Deep Pavlov es un framework de código abierto. Le ayuda a construir bots de chat de habilidades múltiples con NLU, soporte de múltiples estados, contextos, etc. Puede conectar fácilmente otros modelos de DeepPavlov al agente para anotación y evaluación. No parece tener ningún soporte de canal en este momento, pero se puede usar para prácticamente cualquier cosa, aunque requiere mucha personalización y trabajo adicional debido a la falta de conectores existentes.
JAICF (Just AI Conversational Framework)
JAICF es completamente personalizable; el framework funciona con canales de voz y texto populares como Amazon Alexa, Google Actions, Slack, Facebook Messenger y más.
Cualquier motor NLU, ya sea Dialogflow o Rasa, también es compatible y el uso de JAICF de bibliotecas de terceros agrega módulos NLU listos para usar. La flexibilidad de JAICF permite a los desarrolladores implementar en el entorno de su elección y se puede escalar fácilmente con una selección de bibliotecas de Kotlin, Java o de terceros.
Envolviéndolo
- Los frameworks son increíbles: ahorran tiempo, dan mano libre para crear una solución única y personalizada, pero lo más importante es que no es necesario ser un cabeza de código de nivel superior para comenzar. Los marcos son conjuntos de construcción que abarcan todos los beans necesarios que pueda necesitar para poner en práctica incluso la idea más audaz.
- Los frameworks son de código abierto, lo que significa que son gratuitos incluso para uso comercial. Muchos de ellos, como JAICF, Rasa o Jovo, permiten crear incluso soluciones de misión crítica, de forma gratuita o con pago adicional para algunas funciones, integraciones o canales. Lo que significa que puede construir incluso proyectos empresariales con bajas inversiones.
- Los frameworks implementan la lógica del diálogo, pero no limitan el desarrollo, lo que significa que puede crear una habilidad para un dispositivo inteligente, teléfono, un bot simple, un juego, lo que quiera. ¡Podrías usar estas herramientas incluso para crear escenarios para una película!
La IA conversacional es una tecnología relativamente nueva, pero gratificante porque su futuro es muy prometedor: los chatbots, los asistentes virtuales y la navegación por voz llegaron para quedarse. Cada día encontraremos nuevas soluciones. ¡Y tú puedes ser quien traiga algo a la mesa! La idea es crucial en la IA conversacional y puede encontrar una que simplemente analice las necesidades diarias, la experiencia del usuario y las expectativas del cliente.