A lightweight & powerful skill bot with multi end*point support.
pip install *r requirements.dev.txt
* Install dependents.sh ./scripts/docs*live.sh
* Star a live document.sh ./scripts/lint.sh
* Run lint.
Here are the basic concepts, all pre-defined models saved in file bulbul/builtins.py
.
-
NLU
- PreProcessor: Consume a
Query
object and return aQuery
object with processed text. Here is same examples:- remove while space.
- convert emoji to token.
- custom PreProcessor
- IntentTagger: Consume a
Query
object and might return a list ofNLUResult
, eachNLUResult
contains aIntent
. - JointTagger: Consume a
Query
object and might return a list ofNLUResult
, eachNLUResult
contains aIntent
and aSlot
. - SlotTagger: Consume a
NLUResult
object (which containIntent
object) and return aNLUResult
(might contain aSlot
obejct).
- PreProcessor: Consume a
-
Skill: Which consume a
NLUResult
object and return a optionalSkillResponse
-
Plugin
- RuleBasedPlugin Which defines nlu rules and skill handler function in a single class.
-
Adapter: Adapter will consume requests from different backend and convert it to a unified request for BulBul, and convert bulbuls response to json format required by different backends.
-
PreProcessor
- WhiteSpaceRemover
- EmojiConvertor
-
RuleEngine
- DictRule
- RegexRule
- Regex+DictRule
-
ModelEngine
- KerasModel
- KashgariModel
-
Skill
- Weather
-
Adapter
- Wechaty
- Telegram
- Slack