Project
Project
Objective:-In this project, we would be combining multiple services and open-source tools to make a
Chatbot that recommends songs based on the tone of the conversation the user is having with the
chatbot
Project Context:-The purpose of chatbots is to support and scale business teams in their relations
with customers. It could live in any major chat applications like Facebook Messenger, Slack, Telegram,
Text Messages, etc. Chatbot applications streamline interactions between people and services,
enhancing customer experience. At the same time, they offer companies new opportunities to
improve the customer engagement process and operational efficiency by reducing the typical cost of
customer service. This project is focused on building a custom chatbot that will be your fundamental
step in the learning curve of building your professional chatbots.
But you must be tired of the weird chatbots out there in the world which are made for mainly
business purposes. In this project, we would be building an extensive Chatbot service, to which you
can talk to. And talking to a chatbot wouldn't be business-driven. It would just be casual
conversations. Further, on top of it, the chatbot would also be recommending songs to the user
based on the tone of the user. This song recommendation feature employs the use of Last.fm API,
very similar to the popular Spotify API. Also for tone/emotion analysis of the conversation, we will be
using the IBM Tone Analyzer API.
Collaborating with these types of APIs is very much critical as in today's world the popular chatbots
do much more than simply have a data-driven conversation; to supplement additional user-oriented
features. Also, the reason for choosing Python to build the chatbot is that Python boasts a wide array
of open-source libraries for chatbots, including sci-kit-learn and TensorFlow. It is great for small data
sets and more simple analyses; Also, Python's libraries are much more practical.
Architecture:-
High-Level Approach:-
• Emotional Analysis of the conversation is done using the IBM Emotional API
• Based on the Emotion that the app perceives, top songs are retrieved using Last. fm songs API
• If a user listens to a particular song for some time, a similar song would be recommended to the
user using Last.fm API.
Primary goals:-
• Setting up an open-source project locally and handling the errors being faced
• Having a real-world chatbot, to which you can chat like you chatting to a real person and enjoying
the music recommended by the system.
Since Chatbot is the main part of the project, we would be setting up the Chatbot first. This part
alone would give you a strong understanding of the project. In this milestone, you need to install
Cakechat Chatbot from this GitHub Repository https://github.com/lukalabs/cakechat.
Requirements:-
• Fork and Clone the GitHub repository onto your local machine.
• Load the pre-trained model by following the steps specified here GitHub - lukalabs/cakechat:
CakeChat: Emotional Generative Dialog System.
• Run and test the Cakechat Server as specified here GitHub - lukalabs/cakechat: CakeChat:
Emotional Generative Dialog System
References:-
• Loading the pre-trained model GitHub - lukalabs/cakechat: CakeChat: Emotional Generative Dialog
System
• Running and Testing the Cakechat Server GitHub - lukalabs/cakechat: CakeChat: Emotional
Generative Dialog System
Expected Outcome:-
• By the end, you will be having a running Cakechat Chatbot Server on your system and you would
be able to get a response based on a conversation like shown below:-
python tools/test_api.py -f 127.0.0.1 -p 8080 \ >