Coder Social home page Coder Social logo

rocketchat / alexa-rocketchat Goto Github PK

View Code? Open in Web Editor NEW
18.0 18.0 19.0 1.89 MB

Innovating incredible new user experiences in the Alexa ecosystem - powered by Rocket.Chat

License: MIT License

JavaScript 99.81% HCL 0.04% Dockerfile 0.13% Shell 0.02%
alexa-skill aws-lambda chat-skill

alexa-rocketchat's People

Contributors

acerbisgianluca avatar adarshnaidu avatar aryangulati avatar dependabot[bot] avatar marceloschmidt avatar prajvalraval avatar sing-li avatar thedreamsaver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alexa-rocketchat's Issues

Add Account Linking Readme

Add a readme for describing how we can add account linking to the skill.

Feel free to add/update the setup instructions in readme @PrajvalRaval @acerbisgianluca if you find anything missing while setting up the account linking on your end.
If all works fine, will close the issue.

Add anonymous user mode

Allow anonymous user to read and send (if enabled) message from/to a channel in a server.

[Future] Add CI

Add continuous integration workflow.

Once a PR has been merged - the skill is redeployed to AWS and connectable with staging RC. Allowing immediate e2e testing by dev.

Use Github Action as much as possible.

[Improvement] Don't leave mic open

Currently, some intents even on successful completion of the task just leave the mic open without asking for any input from the user.

Make sure Alexa prompts the user with a question such as "Anything else I can help you with?" after every intent is completed successfully. You can also create an array of similar phrases and program it to use a random phrase every time, for some variety. ๐Ÿ˜„

[Improvement] Shared Slot Integration

We currently have dynamic entities implemented in our Alexa skill. Although dynamic entities come with a limitation of only 100 values to be loaded at runtime.
But Amazon very recently launched something called shared slots.
https://developer.amazon.com/en-US/blogs/alexa/alexa-skills-kit/2020/03/create-shared-slots-across-your-skills-to-optimize-productivity-and-customer-experience

My inference is that it gives the ability to add dynamic entities without the 100 entities limit of the Alexa directive.
Potentially you can have thousands of dynamic slots just by passing an endpoint to the interaction model.

Making this enhancement to our Alexa skill will require extensive knowledge of how the slots and directives in Alexa work. Research a bit around this and see if it actually solves our use case. Go through the necessary documentation and feel free to ask questions regarding your approach here.

[Improvement] Similar sounding Utterances

A lot of Utterances across different intents are very similar sounding to each other, due to this sometimes unrequested intents are invoked by Alexa.

Find a way to restructure current Utterances in a way that the accuracy is improved, and only the requested intents are invoked every time.

User's name not being spoken in some cases

In GetLastMessageFromChannelIntent sometimes the name of the user isn't present in the response.

Ideally, in the below example it should say, Ashish Jha says, hi.
But the actual result is, says, hi.

[Improvement] Usernames require `firstname.lastname` format.

In the current version of our skill, users can only send DMs to the user who has firstname.lastname username format. Find a way to send messages even to those users who do not follow this type of naming convention.

Maybe even to the users who have numbers in their username such as "bizykid19" or "virus34" etc.

[Improvement] Utilise screen enabled device properly.

Problem: Message being read as well shown on the screen enabled Alexa device.

Screen enabled should only say for example, "You have following 3 unread messages:" and show all the message on the screen.

While only voice-enabled devices (for ex: Echo Dot) should respond with "You have 3 unread messages... MESSAGE1..... MESSAGE2...... MESSAGE3......."

[Bug] PostGroupEmojiMessageIntent does not work

The PostGroupEmojiMessageIntent which allows user to send message with emoji to private groups does not work.

Cloud watch logs show this error when this intent is invoked

ERROR TypeError: remove-whitespace: expected a string
at removeWhitespace (/var/task/node_modules/remove-whitespace/index.js:21:25)
at Object.replaceWhitespacesFunc (/var/task/helperFunctions.js:520:9)
at Object.handle (/var/task/index.js:1626:40)

Add Github Project Board

Contributors are facing a little issue with work distribution and adding a project board will streamline this process and will make it easier for everyone to decide what to work on and when.

[Improvement] Add Dialog Based User Interface in all intents.

A lot of intents still depends on a single line invocation, for example, intents such as "MakeModeratorIntent" requires users to say "Make USERNAME Moderator Of CHANNELNAME" in one go. This makes for a very bad conversational experience.

Instead, it should be designed like the following:

User: Make Channel Moderator
Alexa: Can you give me a channel name?
User: test
Alexa: Ok, using test channel now. Can you provide me with a user name?
User: test user
Alexa: Thanks, Making test.user the moderator of the test channel. Is this correct?
User: Yes
Alexa: Great! test.user is now the moderator of the test channel.
Alexa: Anything else I can help you with?
.
.
.

Implement this kind of turn-based dialogue system for every intent in our skill.

[Bug] Skill not exiting even when user says "no"

After an intent is successfully completed, the following response is expected:

Alexa: Anything else I can help you with?
User: No
Alexa: Thank you for using Rocket.Chat Alexa Skill

Skill exits successfully.

However, we are instead getting the following response:

Alexa: Anything else I can help you with?
User: No
Alexa: There was a problem with the requested skill's response

Skill abruptly stops functioning

Linked accounts implementation

Alexa only allows an OAuth 2.0 authorization support that means when a user access the skill Alexa only returns an OAuth Token to Rocket.Chat server.

While for a successfull request Rocket.Chat API requires email,password,AUTH_TOKEN and UserID to return data.

A PR to implement this is welcomed at any time.

We are working constantly to solve this problem yet we would like if you can suggest some ideas regarding this topic and help us with the acoount linking process. One of the potential idea is making a custom Auth0 API for carrying out this process. Feel free to join the discussion on Rocket.Chat Alexa Discussion

[Bug] undefined message gets sent on using PostEmojiMessageIntent

It has happened several times that on the invocation of PostEmojiMessageIntent with multiple emoji's, an undefined message with emoji gets sent.
multiple_emoji

On checking the input.json file, it showed that Alexa is not able to detect the postmessage slot and fills it with an empty value. This error happens especially on sending multiple emoji's.
The input given in the above image where the result is undefined was
send hi everyone good morning emoji good morning hello to <channel name>

[BEGINNER] Add More Real Life Chat Example's To Slot Values

We have created a lot of locales for our skill but to make Alexa understand your command better we need to add more and more examples to slot values. Especially in message slot, since it is the one that has the most variety in every locale.

[Improvement] Add APL in missing intent response

We have APL already included in a few intent responses, still, there are some pending intents.

Design and develop appropriate APL templates for those intents and add it to our skill, such that it works across all screen enabled devices as well as non-screen enabled devices (Multimodal).

Please also check current APL templates for any outstanding issues and fix them.

[Bug] Intent Invocation Issues

When a user invokes an intent such as AddAllToChannel intent by saying, Add All To <CHANNELNAME> on an Echo Dot or other Alexa device, the skill stops working and abruptly throws There was a problem with requested skills response error.

This problem is also observed in a lot of other intents such as make moderator intents, private channel intents etc.

Identify why this error persists and fix it.

[Improvement] Add missing REST API endpoints.

There are still a few Rocket.Chat REST API endpoints that we have not yet utilised and should be included in the skill.

However, do keep in mind that a lot of endpoints do not go well with VUI. So identify the missing endpoints, that can be utilised, and add it to our skill.

[BEGINNER] Review Requested Before Contributing To Locales

Even if the models for different locales are added to our skill, they are added as a base for new contributors and can have a few mistakes in utterances since they are generated using a translator program. So will suggest reviewing those utterance and making changes as necessary, according to native speakers.

[Improvement] Use AMAZON.FallbackIntent Intent to disambiguate unexpected responses

The AMAZON.FallbackIntent is considered when the user's spoken input cannot be matched with confidence to any of the other intents in the skill.

Also, Amazon just released the capabilities to adjust AMAZON.FallbackIntent's sensitivity which makes it much more useful than it was ever before.
https://developer.amazon.com/en-US/docs/alexa/custom-skills/standard-built-in-intents.html#adjust-sensitivity

Making this enhancement to our Alexa skill will require knowledge of handling exceptions in a conversational way and utilizing the built-in Fallback Intent. Research its feasibility and check which sensitivity settings works the best with our model. Testing must be done on an actual device for this intent.

[Bug] "channelnames" slot not been recognised.

On invoking any of the create channel intents, the following response is expected:

User: Create Channel
Alexa: What is the name of the channel you want to create?
User: test
Alexa: I've created your channel test. Anything else I can help you with?

Current response:

User: Create Channel
Alexa: What is the name of the channel you want to create?
User: test
Alexa: What is the name of the channel you want to create?
User: test

Skill stops abruptly.

Add JARGON SDK support

Jargon SDK is used for localization over i18n as it is tailored for ASK SDK v2 which we are currently using for our skill.
Closed by #28

[Improvement] Eliminate non-essential messages.

On invoking intents such as last message or unread intent, messages such as "User joined the channel" or "User Left the channel" are also included in the response.

Due to this, when the user request messages, the skill responds with "username says username" as a placeholder by above-mentioned type of messages.

Eliminate this flaw, by identifying this type of not essential messages and eliminating them and only responding with messages that are actually relevant to the user.

Deploy Error

An error occurs while deploying the skill. skill.json object encapsulation is broken.
Screenshot_1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.