ringcentral / rc-assistant

RC Assistant Bot
4 stars 2 forks source link

Action plan #7

Open tylerlong opened 5 years ago

tylerlong commented 5 years ago

Create automatic test

Make the bot "smarter"

For example, when I ask it "company info" and "company information", I get different responses. Which means, the bot doesn't know that "info" is short for "information"

We can do something to AWS Lex to make the bot "smarter"

Create a static help page for the bot

Just like a usage manual. List all the commands and expected responses.

I know we can ask the bot "help", but is's always a good idea to have all the commands in a single page so that you can do searching

Support searching of company directory

I think it's a useful feature. We can sell this feature to attract more users

Support searching of app gallery

There are things that the bot cannot do. In such case, we should show the user a link to relevant apps in RingCentral app gallery.

Make the format of message beautiful

Take advantages of Glip message attachments.

tylerlong commented 5 years ago

Use Synonyms and Slot Value Validation in your Amazon Lex Chatbots

tylerlong commented 5 years ago

A new idea

I have an idea and I think it will make the bot way smarter. It will also make the maintenance easier. And if this idea works, we can apply it to other bots/apps.

Background information

The bot's AI part is powered by Amazon Lex. Amazon Lex is not an out-of-box solution, we still need to define intents, utterances, slots..etc manually.

And here is the Amazon Lex definition file which powers our production bot: https://github.com/ringcentral/rc-assistant/blob/master/aws_lex.json

Issues

The Amazon Lex definition file is exported from Amazon Lex web GUI.

Solution

Write scripts to auto generate Amazon Lex definition file.

I've already written some code to prove the concept: https://github.com/ringcentral/rc-assistant/blob/master/test/generate.spec.js

Screen Shot 2019-04-08 at 4 24 51 PM

You can see that utterances are auto-generated, thus avoid the issues mentioned above.

tylerlong commented 5 years ago

Latest update

I've created this AmazonLexGenerator project.

So that you can maintain Amazon Lex configure by writing C# code.

Here is the generated Amazon Lex config.

1200+ lines of code, it will be very hard to maintain manually. Thanks to the AmazonLexGenerator project that I can generate Amazon Lex config.