Just AI Conversational Framework (JAICF) provides a Kotlin-based DSL to enable the creation of conversational user interfaces. JAICF works with popular voice and text conversation platforms as well as different NLU engines.
JAICF is not a competitor to the likes of Google, Amazon, Slack, etc. Rather, it aims to provide a tool to create conversations running on any of those platforms. In particular, JAICF is built on top of native libraries interfacing to the major conversation channels, including Amazon Alexa, Google Actions, Slack, Facebook Messenger, and more. Similarly, JAICF is agnostic when it comes to which NLU engine you wish to use, e.g. DialogFlow or Rasa.
Just AI is also maker of the Just AI Conversational Platform (JAICP), which aims to be a complete platform to design, train, and deploy conversation-driven chatbots. JAICF is integrated with JAICP, but JAICF can be used with any other platform providing a way to persist the conversation state of each user, Just AI says.
InfoQ has taken the chance to speak to Just AI’s solution owner, Vitaliy Gorbachev to learn more.
InfoQ: What is the rationale behind JAICF? What are the main scenarios and use-cases it addresses?
Vitaliy Gorbachev: JAICF offers limitless capabilities in building natural language interfaces. And because you can formulate any of your desires or intents into natural language, that means it’s applicable in all kinds of scenarios and use-cases. Any device or app can be made smart by adding a custom-built voice interface/assistant. There are an endless number of scenarios: you can embed a voice assistant in an application or any device (mainly Android-based), build a skill or action for any virtual assistant, create a voice game. The main thing is the idea, and JAICF will easily allow users to do this.
InfoQ: JAICF provides a dialog-oriented DSL which you implemented in Kotlin. What was your experience using this language and how did it contribute to making JAICF possible?
Gorbachev: Kotlin is a perfect programming language for conversational software because it brings a context-oriented programming paradigm which makes it great when it comes to systems where context is crucial. Kotlin’s expressive syntax allows creating a reliable and maintainable code that is easy to troubleshoot. Besides, static typing makes complex enterprise-level solutions error-free.
Another argument for the Kotlin-based framework is that Android is the top operating system for smart devices, and since sooner or later most mobile apps would have voice control, we decided to choose Kotlin, a language widely used by Android developers.
InfoQ: Being Kotlin-based, JAICF is naturally compatible with Android. What about iOS support?
Gorbachev: JAICF is first and foremost a server-side DSL. It can be seamlessly integrated into Android, that’s true; it even offers the opportunity to build a fully offline voice assistant using Google platform speech synthesis and recognition (aka TTS and ASR) and regexp as NLU. It does so by integration with our other Java/Kotlin library -- open-source Aimybox, that provides all the tools needed to create your voice assistant on-device: connectors with different Dialog API providers (Including JAICF), ASR/TTS providers, voice trigger solutions, as well as UI kit and demo app. The good news is Aimybox is ported to iOS, and that means that you can connect JAICF skill with a dialog API connector with some tweaks.
Just AI’s JAICF is available on JetBrains or can be forked on GitHub.