-
Notifications
You must be signed in to change notification settings - Fork 209
Home
Introduction — Triggers – Replies — Conversations — Topics — Plugins and Functions — Knowledge — Under the Hood
SuperScript is a dialog system and bot engine for creating human-like conversation chat bots. It exposes an expressive script for crafting dialogue and features text-expansion using WordNet and information retrieval using a LevelDB graph system.
- Dialog engine
- Multi-user platform for easy integration with group chat systems
- Message pipeline with POS tagging, sentence analysis and question tagging
- Extensible plugin architecture
- A built in graph database using LevelDB and each user has their own SubLevelDB.
- WordNet, a database for word and concept expansion.
SuperScript is platform agnostic. There are example clients for Slack and Telnet and has been tested on Twilio, IRC, Slack, WebRTC, SocketIO, Telegram and TCP.
When a bot receives a message, it will first create a message object using the ss-message library. By default, some basic analysis like word stemming is performed, but you can write and plug in various extra features you wish to use in your message, such as NLP tagging or question classification.
We then pass this to the dialog engine, which will look for a match to what the user has said using the message, any knowledge the bot has gained, and other mechanisms like whether it's a question, whether we're in a conversation, or any keywords in the user's message that correspond to certain topics.
Once a trigger has been matched, its reply is processed, recorded in the database, and sent back to the user.
All of these ideas are explored further in Under the Hood.
- Topic: a way to logically group one or more gambits that are about a certain topic, such as football or fishing. All your conversations start within a topic. SuperScript will continue to search topics until it finds a matching trigger and reply.
- Gambit: a trigger, one or more replies, and any additional rules that tell the bot how to reply to a specific input, such as filters.
- Input: the message sent by the user to the bot.
- Trigger: a string that is matched against the user's input in order to work out how to respond.
- Reply: a specific reply given by the bot under certain conditions.
- Conversation: a set of gambits that will only match if a previous gambit in the conversation chain has already been matched.
A detailed walkthrough can be find here: Installing
Continue to Triggers