Alexa connector for RASA

Hi, I am trying to use RASA NLU to develop alexa skill, but i found out there is no way of getting complete user utterance from alexa, in this forum there is a topic on google and alexa connector, there also I asked this question but I didn’t get any reply so creating this topic and also there is a tutorial about connecting google assistant with RASA and I did that, but I am not finding a way to do that with alexa.

Can anyone help me with this?

Thank you.

HI @yashwanths112. I have experimented with Alex a little bit and had the same experience as you had, that it’s not that easy to pass user inputs to Alexa. I got it working in the end, I will try to find some time to write it all up and post it on the forum :slight_smile:

2 Likes

Thank you for the reply @Juste, that will be really helpful.

hi @Juste, can you please tell us when we can expect the tutorials about alexa connector?

Hey Juste! Was this tutorial about creating a custom connector to Amazon’s Alexa that you mention in your August 2018 reply to a user named yashwanths112 (linked below) ever released?

I would love to know, thanks so much! Please have a good day.

Hi @mepc36. Not yet sorry, but I’ll try posting it by the end of this week. Will update you once it’s here.

Great, thanks so much @Juste! I appreciate you letting me know when that Alexa connector tutorial gets posted. Thanks again!

I’ve done a poc to connect Alexa with Rasa Core. The NLU part is however performed by Alexa. You may have a look at this:

1 Like

@Juste Hey! I assume you’re crazy busy with the conference coming up, but what about writing about it after? Maybe by end of sept? Thank you.

Has anyone figured out if there’s a way to get the complete utterance from Alexa? I did a little test and the alexa skill intent handler lambda <> rasa interface is super-easy. But it seems like the alexa training data for that requires at least one fixed word. e.g.,

‘ok {full_sentence}’ works so that I can say “ok hello there rasa” and this will invoke the alexa handler with the slot full_sentence = “hello there rasa” … I can send that down to rasa and get the response back and say it.

But this:

‘{full_sentence}’

is not a legal training example. So I’m stuck. Maybe there’s some trick with the fallback intent?

hey @Juste is there any update regarding this? please share the alexaConnector.py.

Thanks

Hi @svshubham01. We are working on this and will soon share a tutorial on it. Apologies it is taking quite some time :slight_smile:

1 Like

Hi @Juste It will be appreciated if you letting me know when we can expect that Alexa connector tutorial gets posted. Thanks again!

The Alexa tutorial is live!

(Edited to fix line breaks.)

1 Like

Hi @rctatman, to my knowledge, the method of using single intent with a single slot to get the complete user utterance will not pass Alexa Certification.

I believe the Alexa docs says that this is not allowed.

Can you confirm that this will work now and any examples in production that have passed certification using this method?

Thank you!

Hi Mark! I’ve heard mixed results from folks about using this approach in the certification process. I’ve been scouring the Alexa docs this week looking for a relevant policy and haven’t found one yet, but someone from the Alexa team on Twitter suggested it would go against the certification policy. (If you’ve got a lead on more info I’d really appreciate it! :pray:) The Amazon team recommended using custom slots as a replace after the Amazon.LITERAL intent–which did the same thing–was deprecated so it does still seem like the best solution to me. I’m continuing to do more research & will post updates as I find out more.

In the meantime, if you have an Alexa for Business account you can publish a private skill without having to go through the certification process. It will only work on your business devices, though, so not a very general solution.

1 Like

My Favourite kaggler is in the house @rctatman :star_struck:

Now RASA tutorials are in great hands and thanks for the Alexa sessions

cheers

1 Like

Hi Rachael,

somehow Alexa can only return one utterance each time. Is there any way to configure it to give me all of my predefined utterances?

Not that I know of unfortunately. You can store the conversation history on the Rasa side but I couldn’t find a way to get more than one utterance at a time passed from Alexa.

I found this in your Alexa connector code… responses = [m[“text”] for m in out.messages] message = responses[0]

If you change the second line to: message = " ".join(responses)

Alexa will get all utterances.

1 Like