Jovo Core Platform
Learn more about the Jovo Core Platform, which can be used to deploy a voice experiences to custom devices and hardware, including the web, mobile apps, and Raspberry Pi.
Besides integrations with major platforms like Alexa, Google Assistant, or Facebook Messenger, Jovo also enables you to connect your own clients to build fully custom conversational experiences for both voice and chat.
As each platform comes with its own structure for requests and responses, companies often create their own internal platform integration with Jovo. You can learn more about the process in this Tutorial: Add a Custom Platform to the Jovo Framework.
To make the process easier, we created the Jovo Core Platform which comes with its own request and response JSON structure and a lot of helpful features off-the-shelf.
The Jovo Core Platform can be connected to any client (the "frontend" that records speech or text input and passes it to the Jovo app). You can either implement your own client or use existing Jovo Clients.
The client sends a request to the Jovo app that may contain audio, text, or other input. The Jovo Core Platform then deals with this information and returns a response back to the client. Learn more about the Core Platform request and response structures below.
Depending on the client, it may be necessary to add integrations to the platform to convert the input to structured data:
- Automatic Speech Recognition (ASR) to turn spoken audio into transcribed text
- Natural Language Understanding (NLU) to turn raw text into meaning
After these integrations are added, building a Jovo app for custom clients is similar to building for platforms like Alexa and Google Assistant. Take a look at the Jovo Docs to learn more.
Install the integration into your project directory:
Import the installed module, initialize and add it to the
You can access the
corePlatformApp object like this:
The returned object will be an instance of
CorePlatformApp if the current request is compatible with the Core Platform. Otherwise
undefined will be returned.
In a Jovo app, each interaction goes through a request & response cycle, where the Jovo app receives the request from the client in a JSON format, routes through the logic, and then assembles a response that is sent back to the client.
The request usually contains data like an audio file or raw text (find all sample request JSONs here):
The response contains all the information that is needed by the client to display content (find all sample response JSONs here):
Depending on how the client sends the data (e.g. just a raw audio file, or written text), it may be necessary to add Automatic Speech Recognition (ASR) or Natural Language Understanding (NLU) integrations to the Jovo Core Platform.
Integrations can be added with the
The example below uses the Jovo NLU integration for NLPjs to turn raw text into structured meaning:
output object in the JSON response can contain both
speech output and
Actions are additional ways (beyond speech output) how the client can respond to the user. You can add or set Actions like this:
INFO The actions generated for the speech of
askwill NOT be overwritten.
There are several action types available:
There are also containers that can be used to nest actions:
The SpeechAction can be used to display text and synthesize text.
The AudioAction can be used to play an audio file.
The VisualAction can be used for visual output like cards.
The ProcessingAction can be used to display processing information.
The CustomAction can be used to send a custom payload that can be handled by the client.
The SequenceContainer can be used to nest actions. All actions inside this container will be processed after another.
The ParallelContainer can be used to nest actions. All actions inside this container will be processed simultaneously.
CorePlatformApp has the properties
$repromptActions, which are instances of
ActionBuilder is the recommended way of filling the output for the Core Platform.