bBot is in active development with an alpha version focused on fundamentals for ease of maintenance and fully tested module design.
The upcoming beta will include a set of modules that provide bBot's unique features for modelling and executing stateful conversational UI.
The first release will add tutorials and examples to get started. With at least one of each adapter to provide full utility and patterns.
Subsequent minor versions post release will add adapters for a variety of storage, natural language, and messaging platforms (including for voice interfaces).
Our next major version will introduce a front-end for conversation designers to prototype and test interactions, while maintaining the flexibility for coders.
Watch our GitHub milestones for detailed updates.
- Released under the MIT Licence
- Built in Typescript for Node.js
- Code follows StandardJS style
- Documentation generated by TypeDoc
- Logging is handled by Winston
- Configuration is handled by Yargs
- Unit testing with Mocha, Chai, SinonJs
- Test Coverage with Istanbul
Loads adapters and middleware, controls the running status to pause, play, shutdown, reboot.
~(O_O)~ bleep bloop.
Apply settings from command line arguments, environment variables or config files. Accessible to all modules and extensions.
Provided to callbacks, contains all attributes of the bot and current interaction (message matching and language processing). Used to invoke response.
Received from the platform, with user and room meta. Response envelopes can address user, room or a platform event, like reactions and topic changes.
Use any messaging platform to hear and respond to message. In alpha, we include adapters for Rocket.Chat and a command line adapter for testing.
Match incoming messages to callbacks by text pattern, natural language processing, or custom functions and fallbacks.
Bits provide a simple schema for defining a single point within a series of interactions. Bits link together to make conversations.
Controls all the operational memory and handles anything stored longer term. It keeps known users and messaging history or custom data sets.
Assigns every listener, message, user and state instance within either a hash or sequential id, tracing every event to it's source.
Post or get content between the bot and external services to provide real-time context to an interaction.
Allows bot to process external file/s on load. For developers to add behaviour and conversation content using bBot (its primary purpose).
An internal express server sets up HTTP listeners, to change the bot's state or trigger interactions in the message platform.
Natural Language Adapters
We will include Watson as a default option for adding NLU to match and respond based on message intent, entities and/or sentiment.
An essential component for conversations. Matches message against possible branches in a tightly scoped context. Adapts to user input in real-time.
Controls conversation paths, with fallbacks and timeouts. Routes responses as required.
Enters and conducts audience participation in dialogue. Audience can be a user or a whole room. Once engaged, the bot processes input within that context.
Parses message templates at runtime with data from user attributes, collected context and/or custom extensions.
Provides conversation firewalls, allowing certain users to be authorised or blocked from entering particular interactions.
A simple conversation modelling schema. It's attributes automatically configure modules to populate and conduct a series of interactions.
Record conversation event details. Transcripts are searchable and can be used to populate response context from interaction history.
Send messages with rich UI payloads. Attach button menus and multimedia content, to be presented in the message platform.
The bot comes loaded with a variety of example interactions that can be engaged with and modified to learn the basics.
A set of mock adapters, that emulate processing developer's scripts in a live platform. For unit testing assertions on bot interactions.
Providing multi-lingual scripts allows the i18n module to change the bot's language in real-time, based on user attributes or NLU detection.
View the operational status and active behaviour of the bot. Can report on known users and interaction transcripts.
Provide a drill down feed of analytics data to external platforms. We'll package Chatbase as a default provider.
Icons created by ProSymbols from the Noun Project