This application demonstrates the usage of Aimybox SDK and the integration of NLU engines like Aimybox, RASA and Dialogflow etc. UI is simple enough to use multiple NLU engines while keeping the core UI similar.
By default the Aimybox NLU engine is trained with below skills
- Calculator
- Date & Time
- Geography Quiz
- Jokes
- Weather forecast by OpenWeatherMap
- Wikipedia
You can create your own Aimybox NLU engine and add skills from a preselected library : https://aimybox.com/. After creating, train the model then add the API key in app settings. Remember, app restart is needed for the changes to take effect. This is because the settings are applied in Application class level.
Do read about RASA setup here : https://blog.rasa.com/how-to-build-a-mobile-voice-assistant-with-open-source-rasa-and-aimybox/
You can create your own RASA instance locally and expose the endpoint via ngrok : https://ngrok.com/ then add ngrok endpoint in the app settings.
This project is written in Kotlin and has below implementations
- Kotlin DSL based
build.gradle.kts
file : https://guides.gradle.org/migrating-build-logic-from-groovy-to-kotlin/ - Aimybox Android SDK : https://github.com/just-ai/aimybox-android-assistant
- DI by Koin : https://insert-koin.io/
- Kotlin Android Extensions : https://developer.android.com/kotlin/ktx
- EncryptedSharedPreferences using Crypto Security library : https://developer.android.com/reference/androidx/security/crypto/EncryptedSharedPreferences
- Gradient Animation using AnimationDrawable
- Lottie Animation : https://github.com/airbnb/lottie-android
- Shared Element Transition : https://developer.android.com/training/transitions/start-activity
This project has been submitted to 30 Days of Kotlin
initiative by Google : https://eventsonair.withgoogle.com/events/kotlin
Thanks Google for showcasing this in Google Developers Webinar : https://youtu.be/WCxoDUcTsbU?t=3443
Big thanks to below pages and authors for creating awesome contents that are free to use :)
- Lottie JSON file from : https://lottiefiles.com/
- Icons from : https://www.flaticon.com/