BubbleNLU is a state of the art Deep Learning NLU Engine (Natural Language Understanding). The project has been created to provide the TechBubble Technologies EcoSystem with a more advanced and efficient A.I. assistant, TIA, who is soon to replace TOA in all TechBubble Technologies systems including the IoT JumpWay / IntelliLan products and services and A.I. Hybrid Application products.
- Updatable default responses
- Trained / interfaced via API
- Intent classification
- Intent classification threshold sent as API parameter
- Entity training /
- Entity synonym training / classification
- Dialogue context management
- Automatic dialogue context resetting if user changes conversation
- Intent actions
- Multiple models / users
- Repetition handling
- Updatable repetition responses
- Updatable repetition ignore count
- Updatable repetition ignore count cutoff
- Served on secure Nginx server
FUTURE FEATURES INCLUDE:
- Internal actions for updating user details such as name, age, location etc
- Slotfilling with automatic cancellation if user changes conversation
- Sentiment analysis
- Managed via TechBubble ARC
- Hosted on Colfax
AREAS THAT HAVE IMPROVED THE ENGINE:
Automatic Dialogue Resetting: One issue with other services I have used was getting caught in a loop when contexts were set. In my implementation, once the context has been incorrectly matched, if the following intent does not match the context it will reset the context and provide the response to the current intent request.
Post Entity Processing: A lot of the time on other services I have used, when the intent has been matched and entity has been matched, it would return the correct response and entity type, but the wrong entity definition, in my case, it would break the application as entity definitions are what matches the actions to the relevant entry in the database. This would lead to situations such the client being redirected to a product page that did not exist. In my implementation, fallback responses can be added to the data, the engine will check to see if there is a valid entity reference or synonym that matches, and if not will return one of the provided fallbacks, also, it will clear the entity totally if no actual entity was provided in the training data for that intent.
Repetition Management: None of the services I used handled repetition, in my implementation repeat limits can be set and a repeat string which will be added to the beginning of the response for each repeat count. I response before the repeat limit, the bot will respond with a predefined warning that it will no longer respond to the question / statement if asked again, and then if asked again will ignore the user for the duration of a predefined time period.