Jovo v4.2: React Web Widgets, Alexa AudioPlayer, Snips NLU Server, CLI
Published by Alex Swetlow & Jan König on Feb 2, 2022.
In November 2021, we launched Jovo v4
, which was our most exciting update so far. Jovo v4.2
now builds on top of that and comes with many improvements and new integrations. Learn more below.
Introduction
v4.2
is all about building on top of the v4
architecture and showing what can be built with it. The most notable features are:
- React Web Widgets: Build voice and chat web apps with React and Jovo.
- Alexa AudioPlayer: Build Alexa Skills that play long-form audio, like music and podcasts.
- Open Source Snips NLU Server: Host an NLU server on your own premises.
- CLI Improvements: Many improvements, including a newly added
update
command. - Jovo Logger: An improved logger. Learn more in the breaking changes section.
v4.2
also comes with many smaller improvements and bugfixes. You can find all merged pull requests here.
A huge thank you for everyone who helped improve Jovo: Julian, Dominik, Barak, Gareth, Max, Ruben, and many more who are part of the Jovo community!
React Web Widgets
We already launched web starters for Vue.JS a while ago. Now, you can also build voice and chat web apps using Jovo and React!
Right now, we offer starters for a web chat widget and a standalone voice experience.
You can find the chat widget starter template here: https://github.com/jovotech/jovo-starter-web-chatwidget-react
You can find the standalone voice experience starter template here: https://github.com/jovotech/jovo-starter-web-standalone-react
Thank you Max for building these!
Alexa AudioPlayer
We now support the ability to build Alexa AudioPlayer Skills for podcasts, music, and anything else that features long-form audio. Learn more in our docs.
It features helper output classes, @Handle
decorators, and a this.$alexa.audioPlayer
property that makes it easier to access request specific information.
import { AudioPlayerPlayOutput } from '@jovotech/platform-alexa'; // ... someHandler() { // ... return this.$send(AudioPlayerPlayOutput, { message: 'Starting audio', audioItem: { stream: { url: 'https://s3.amazonaws.com/jovo-songs/song1.mp3', }, }, }) }
Thank you Alex for building this!
Open Source Snips NLU Server
We have been offering an integration for Snips NLU, an open source natural language understanding service, since the release of v4.0
.
With this update, we're excited to make it even easier to build with Jovo and Snips NLU. We just open sourced a Python based server that implements Snips NLU and even the ability to train models dynamically based on our dynamic entities feature for Snips.
You can find the server on GitHub (leave a star if you like it!): https://github.com/jovotech/snips-nlu-server
Thank you Ruben for building this!
CLI Improvements
The CLI was bumped to v4.1
and comes with many improvements:
- An improved configuration for the building process of
models
. You can find the documentation here. - A better user experience with hints that suggest next steps based on the used commands.
- A new command:
jovo update
.
Thank you Ruben for the updates!
Getting Started with Jovo
There are several ways how you can get started with Jovo:
- Follow our getting started guide to install the Jovo CLI and create a new project.
- Coming from Jovo
v3
? Follow our migration guide. - Take a look at our
v4
template for TypeScript and JavaScript.
Breaking Changes
We refactored the Jovo Logger to use loglevel
instead of tslog
. You can learn more in this PR.
The CLI improvements for the Jovo Model project configuration also comes with a breaking change if you've been using the modelsDirectory
property (default is models
):
// Before const project = new ProjectConfig({ modelsDirectory: 'models', // ... }); // After const project = new ProjectConfig({ models: { enabled: true, directory: 'models', // ... }, // ... });