Empathetic Response Generator | AI Camp 2022
Education
Introduction
In the realm of artificial intelligence, understanding and processing human emotions is a significant challenge. Our product, Jace, represents a groundbreaking step in this direction. Jace is an empathetic response generator, designed to provide users with comforting and uplifting responses to their messages. Named after our lead front-end developer, Jace operates using advanced natural language processing technology to analyze what users share and offer support and empathy.
Meet the Team
Before delving further into the features of Jace, let's introduce the fantastic team behind this innovative product:
- Chandrack: Project Manager
- Chris: Lead Back-End Developer
- Jace: Lead Front-End Developer
- Victoria: Front-End Developer (unable to speak during the presentation)
- Ria: Back-End Developer (also unable to speak during the presentation)
- Pakquiao: Mentor
Overview of the Project
Our journey began with data collection and pre-processing. We needed to find datasets containing empathetic dialogues, filtering through these datasets to remove errors. The original data, in CSV format, was converted to text files for further formatting before training the models.
Model Training
Using Google Colab, we trained various versions of our model based on OpenAI's GPT-2 transformer model. We fine-tuned different parameters and built several prototypes, rigorously testing each model to determine which provided the most empathetic responses. After identifying the best model, we revisited the pre-processing stage to ensure the highest quality output.
Tech Stack
Our tech stack consists of the following components:
- Dataset: The primary dataset used was titled "Empathetic Dialogues," which included around 25,000 emotional conversations.
- Programming Languages: Python was used alongside AI libraries such as TextGen to train and generate responses with the help of GPT-2.
- Model Types: Besides GPT-2, we also experimented with GPT-Neo and DistilGPT-2.
- Front-End Development: HTML, CSS, and JavaScript were utilized to build the product’s interface.
- Back-End Framework: Flask 2 was employed for routing and connecting the front and back ends.
- Deployment: We used AiCam services to host the project on a domain.
Data Processing
Our dataset mostly comprised conversations, making it an ideal source to generate empathetic responses. However, many entries contained questions, and we aimed to avoid the bot asking further questions. Therefore, we filtered out all lines that contained questions and concatenated the speaker sentences to provide a complete context for each response during training.
Product Demonstration
The Jace product allows users to input prompts in a text box, triggering a small loading animation before displaying an empathetic response. Users can adjust parameters, such as the temperature for response creativity and the top-p for confidence ratings. A reset button is available to restore default settings.
Testing the Product
In demonstrating the product, we explored various prompts, testing its ability to understand and respond to different emotional contexts. While some prompts revealed limitations in comprehension, others showcased the model's capability to provide comforting and context-aware responses.
Acknowledgment
We extend our gratitude to our mentor, Scott Marie Pakquiao, for his patience and guidance throughout our project journey.
Thank you all for your interest in our empathetic response generator!
Keyword
Empathetic Response, AI, Natural Language Processing, Dataset, GPT-2, Project Management, Front-End Development, Back-End Development, Model Training, Emotional Conversations.
FAQ
Q: What is Jace?
A: Jace is an empathetic response generator that provides users with comforting responses using natural language processing.
Q: What technology does Jace use?
A: Jace utilizes OpenAI's GPT-2 transformer model, trained on a dataset of around 25,000 emotional conversations.
Q: How did the team gather the data?
A: The team collected empathetic dialogues, filtered out errors, and converted CSV files to text files for processing.
Q: What programming languages and frameworks were employed in the project?
A: The project utilized Python, HTML, CSS, JavaScript, and Flask 2 for back-end development.
Q: How can users interact with Jace?
A: Users can input prompts in a text box on the product's website and receive an empathetic response based on the context of their input.