Callisto makes it easy and straightforward to build virtual assistants using its plugin-based architecture and context-sensitive conversations.
Callisto can live on your company's servers, on your phone, your Raspberry Pi, or your Docker container. By default Callisto comes as a blank slate, but by installing plugins from the Callisto Registry using the Callisto CLI we can configure Callisto to do just what we need it to do and nothing else.
The beauty of Callisto is the ease by which we can make plugins.
It's as simple as creating a plugin.yaml
file in which we define our interactions, supplying an interaction ID, the prompts
that Callisto offers the user, and a Regex for potential user inputs.
Here's an example of a plugin to get the weather. The user can ask about the weather where they are or they can ask about a specific location:
We can then write some code to handle these interactions. In this case, we can respond to getting the weather directly if we know the user's location, but if we don't, we can send back a question and handle their request once we have an answer. Notice how we can extract the time (today or tomorrow) and location from the Regex directly into our handlers.
Callisto can handle many simultaneous conversations by running each on its own websocket connection and running each plugin as an isolated child process per connection.
An open source web client lets us talk to Callisto using voice commands.