I got inspired from my own search for a tool that I can use to find out all important details about a movie or a tv show so that i can decide whether to watch it or not. There was no single place to find out all such details together specifically in voice assistant world.
What it does
This skill allow users to find details for their favorite movie or a tv show. In future releases, it will also help user to also help whether to watch it or not based on the user interests.
How I built it
I used Alexa kit and SDK to built this skill. I used alexa conversation models for interaction and use some other advanced alexa tools such as multi value slot type. Success of this skill depends on how successful are Alexa conversation models to predict and understand customers input. In terms of technology, I host a lambda function in my aws account that is responsible for hosting and executing the code that finds all the required details. It will also take care of consolidating all different details and come up with a speakable response, since response will vary based on what details customer asked for.
Challenges I ran into
I ran into multiple changes throughout, listing some of them here:
- My skill needs to use multi value slot with custom slot type. I wasn't aware of how to support this usecase. I did lot of research and learning before i found out about multi value slot.
- Supporting a natural conversation and making sure i collect all required information from customer which i find really hard with intent based approach but alexa conversation took care of this problem.
- I was developing in java and i realized there were not much examples available as of now in java related to alexa conversation based skill. I found it difficult at times to figure out how to do a certain things and need to map it from some examples from different language to java.
- Alexa conversation itself is pretty new so it was very difficult to deal with any issue related to it because there is not much help available over internet.
Accomplishments that I'm proud of
- Able to successfully built alexa conversation model that works as expected and cover almost all of the expected path in input.
- Able to quickly learn and build in Alexa space, i was new to this space and was building first time. I am proud that i am able to develop the skill exactly how i envisioned it.
- I am proud to pull up this all by myself.
- Able to work and integrate different technologies together such as Alexa framework, AWS etc.
What I learned
Here are some of my learnings:
- To not give up and keep trying as you will be able to find ways if you keep trying.
- Alexa conversation is the future and it has potential to disrupt the market same way once smart phone did.
Apart from that, here are some of my technical learning:
- Learned about alexa development environment.
- Learned some key and new features of alexa such as Alexa conversation, multi value slot, multi turn conversation, intent based skill, learned about different ways of hosting backend systems for alexa and in-built support for hosting.
- Learned more in details about AWS Lambda and some other AWS technologies such as DDB, S3 etc.
- Learned how to ask users' permission to collect personal details and how to collect them at run-time.
- Learned about end to end skill development in Alexa.
- Learned about developing a software in more generic way(without support of your employer's development environment).
What's next for binge buddy
- Next is to support generic search i.e. not just providing the results for top search but searching all potential results and providing result which looks closest to the customer query.
- Make the experience more personalized for customer by learning from customer's interaction and applying some ML solutions behind the scene to personalized the results.
- Make Alexa conversation more robust by retraining the models with new data that we will get with real time customer interaction.
- Expand it as many marketplaces as possible in next few months after US launch.
- Add support for card to my skill as soon as it is available for Alexa conversation.
- Launch next version that not only provide details but also provide recommendations to customer.